我正在尝试制作一个程序,该程序使用输入字符串的长度作为计算的一部分。
我想使用ByteString来加快速度,因为输入字符串可能会非常长(注意:我真的不知道ByteString是什么,当输入很大时,我听说它的速度比String快)。
但是,当执行以下操作时:
import qualified Data.ByteString as B
main = do
line <- B.getLine
putStrLn . show $ B.length line
如果我要传递字符串:10888869450418352160160768000000
我得到30,但长度为29。
有人知道为什么吗?
答案 0 :(得分:5)
B.getLine
在其产生的ByteString
的输入末尾包含换行符。