繁体   English   中英

Haskell如何创建Word8?

[英]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需要将转换Intord返回到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM