在
another question年,其中一个评论说:“[数据]文本正在成为事实上的文本实现。字符串依然存在于遗留的原因和简单的事情上,但对于严重的文本操作,您应该使用文本。
将Data.Text转换为Int最简单的方法是什么?读取将不起作用,因为读取函数总是使用一个String。
我能想出的最好的是:
let fortyTwo = Data.Text.pack "42" read $ Data.Text.unpack fortyTwo :: Int
有没有更好的办法?
解决方法
看着
the
text
package,我看到一个名为
Data.Text.Read
的模块。它似乎工作:
λ> decimal (T.pack "99 bottles") Right (99," bottles") λ> decimal (T.pack "a digit") Left "input does not start with a digit"