我想把ByteString
拆分成这样的词:
import qualified Data.ByteString as BS
main = do
input <- BS.getLine
let xs = BS.split ' ' input
但是GHC本身似乎不能将字符文字转换为Word8
,所以我得到:
Couldn't match expected type `GHC.Word.Word8'
with actual type `Char'
In the first argument of `BS.split', namely ' '
In the expression: BS.split ' ' input
Hoogle找不到任何类型签名为Char -> Word8
的内容,并且Word.Word8 ' '
是无效的类型构造函数。对如何修复它有什么想法吗?
发布于 2012-05-17 01:20:33
Data.ByteString.Char8模块允许您将字节字符串中的Word8
值视为Char
。只是
import qualified Data.ByteString.Char8 as C
然后参考例如C.split。它在幕后是相同的字节串,但是为了方便字节/ascii解析,提供了Char
-oriented函数。
发布于 2019-02-04 00:24:04
寻找带有基础库的简单Char -> Word8
的人们:
import Data.Word
charToWord8 :: Char -> Word8
charToWord8 = toEnum . fromEnum
发布于 2021-11-13 20:07:33
另一种可能的解决方案如下:
charToWord8 :: Char -> Word8
charToWord8 = fromIntegral . ord
{-# INLINE charToWord8 #-}
ord :: Chat → Int
和其他人可以推断的地方。
https://stackoverflow.com/questions/10623424
复制相似问题