[英]Haskell How to Create a Word8?
我想编写一个简单的函数,它使用'\\n'
作为分隔符将ByteString
拆分为[ByteString]
。 我的尝试:
import Data.ByteString
listize :: ByteString -> [ByteString]
listize xs = Data.ByteString.splitWith (=='\n') xs
这会引发错误,因为'\\n'
是Char
而不是Word8
,这正是Data.ByteString.splitWith
所期望的。
如何将这个简单的字符转换为ByteString
将使用的Word8
?
你可以只使用数字文字10
,但如果你想将字符转换的文字,你可以使用fromIntegral (ord '\\n')
该fromIntegral
需要将转换Int
是ord
返回到Word8
)。 你必须为ord
导入Data.Char
。
您还可以导入Data.ByteString.Char8
,它提供在同一ByteString
数据类型上使用Char
而不是Word8
函数。 (实际上,它有一个完全符合你想要的lines
函数。)但是,这通常不推荐,因为ByteString
不存储Unicode代码点(这是Char
代表的),而是存储原始八位字节(即Word8
)。
如果您正在处理文本数据,则应考虑使用Text
而不是ByteString
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.