ByteString 有追加运算符吗?
Is there an append operator for ByteString?
对于 String 有 ++
,其类型为
> :t (++)
(++) :: [a] -> [a] -> [a]
显然它在 ByteString
上不起作用,因为它不是列表。我看到了 append
函数,但是它有运算符吗?
ByteString 有一个 Semigroup 实例,所以它可以按照半群组合的通常方式组合,(<>)
。
相同的运算符也适用于字符串,因为 String ~ [Char]
和 [a]
有一个 Semigroup 实例,其中 (<>) = (++)
.
Prelude Data.ByteString.Char8> unpack $ pack "abc" <> pack "def"
"abcdef"
这里我将两个字符串转换为字节字符串,将它们合并为字节字符串,然后再转换回字符串以证明它是有效的。
concat :: [ByteString] -> ByteString
O(n) 连接字节字符串列表。
对于 String 有 ++
,其类型为
> :t (++)
(++) :: [a] -> [a] -> [a]
显然它在 ByteString
上不起作用,因为它不是列表。我看到了 append
函数,但是它有运算符吗?
ByteString 有一个 Semigroup 实例,所以它可以按照半群组合的通常方式组合,(<>)
。
相同的运算符也适用于字符串,因为 String ~ [Char]
和 [a]
有一个 Semigroup 实例,其中 (<>) = (++)
.
Prelude Data.ByteString.Char8> unpack $ pack "abc" <> pack "def"
"abcdef"
这里我将两个字符串转换为字节字符串,将它们合并为字节字符串,然后再转换回字符串以证明它是有效的。
concat :: [ByteString] -> ByteString
O(n) 连接字节字符串列表。