Xan*_*unn 12 string haskell bytestring
我想编写一个简单的函数,它分割一个ByteString到[ByteString]使用'\n'作为分隔符.我的尝试:
import Data.ByteString
listize :: ByteString -> [ByteString]
listize xs = Data.ByteString.splitWith (=='\n') xs
Run Code Online (Sandbox Code Playgroud)
这会引发错误,因为它'\n'是一个Char而不是一个Word8,这Data.ByteString.splitWith是期待的.
如何打开这个简单的字符为Word8那ByteString会玩?
ehi*_*ird 14
你可以只使用数字文字10,但如果你想转换你可以使用的字符文字fromIntegral (ord '\n')(fromIntegral需要将Int它ord返回到a Word8).你必须进口Data.Char的ord.
您也可以导入Data.ByteString.Char8,它提供了使用Char而不是使用Word8相同ByteString数据类型的功能.(实际上,它有一个lines完全符合你想要的功能.)但是,这通常不推荐,因为ByteStrings 不存储Unicode代码点(Char代表什么),而是存储原始八位字节(即Word8s).
如果您正在处理文本数据,则应考虑使用Text而不是ByteString.
| 归档时间: |
|
| 查看次数: |
5565 次 |
| 最近记录: |