码迷,mamicode.com
首页 > 编程语言 > 详细

Haskell语言学习笔记(49)ByteString Text

时间:2017-11-23 15:22:51      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:replace   abc   nic   can   ons   ack   string   文本   文本文件   

Data.ByteString

String 是 [Char] 的同义词,在使用上存在List的惰性所带来的性能问题。
在处理大型二进制文件时,可以使用 ByteString 来代替 String。
ByteString 包含 Lazy 模块 Data.ByteString.Lazy 和 Strict 模块 Data.ByteString。
其中 Lazy 模块内部使用 chunks(64K数据块)。

Prelude> import qualified Data.ByteString.Lazy as B
Prelude B> import qualified Data.ByteString as S
Prelude B S> B.pack [99,97,110]
"can"
Prelude B S> B.fromChunks [S.pack [40,41,42], S.pack [43,44,45], S.pack [46,47,48]]
"()*+,-./0"
Prelude B S> B.cons 85 $ B.pack [80,81,82,84]
"UPQRT"
Prelude B S> foldr B.cons' B.empty [50..60] 
"23456789:;<"

Data.Text

在处理大型文本文件时,可以使用 Text 来代替 String。
Text 是一个 Unicode 友好的字符串类型。
Text 包含 Lazy 模块 Data.Text.Lazy 和 Strict 模块 Data.Text。
其中 Lazy 模块内部使用 chunks。

Prelude> import qualified Data.Text.Lazy as T
Prelude T> :t T.pack "abc"
T.pack "abc" :: T.Text
Prelude T> T.replace (T.pack "a") (T.pack "b") (T.pack "aXaXaX")
"bXbXbX"
Prelude T> T.splitOn (T.pack "a") (T.pack "aXaXaX")
["","X","X","X"]

Haskell语言学习笔记(49)ByteString Text

标签:replace   abc   nic   can   ons   ack   string   文本   文本文件   

原文地址:http://www.cnblogs.com/zwvista/p/7884268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!