Data.Bytestring长度给出错误的长度

时间:2019-05-07 18:12:56

标签: haskell

我正在尝试制作一个程序,该程序使用输入字符串的长度作为计算的一部分。

我想使用ByteString来加快速度,因为输入字符串可能会非常长(注意:我真的不知道ByteString是什么,当输入很大时,我听说它的速度比String快)。

但是,当执行以下操作时:

import qualified Data.ByteString as B

main = do
    line <- B.getLine
    putStrLn . show $ B.length line

如果我要传递字符串:10888869450418352160160768000000

我得到30,但长度为29。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:5)

B.getLine在其产生的ByteString的输入末尾包含换行符。