对于String,有++
,其类型为
> :t (++)
(++) :: [a] -> [a] -> [a]
显然它不适用ByteString
,因为它不是一个列表。我看到了append
函数,但它有一个运算符吗?
答案 0 :(得分:14)
ByteString有一个Monoid实例,因此可以通过(Data.Monoid.<>)
组合幺半群的常规方式进行组合。
同一个运算符也适用于字符串,因为String ~ [Char]
和[a]
有一个Monoid实例(<>) = (++)
。
Prelude Data.Monoid Data.ByteString.Char8> unpack $ pack "abc" <> pack "def"
"abcdef"
这里我将两个字符串转换为ByteStrings,将它们组合为ByteStrings,然后转换回String以证明它有效。
答案 1 :(得分:0)
concat :: [ByteString]-> ByteString
O(n)连接一个ByteString列表。