Ral*_*lph 23 string haskell type-conversion
在另一个问题中,其中一条评论说," [Data.]Text正在成为事实上的文本实现.String由于遗留原因和简单的事情仍然存在,但对于你应该使用的严肃的文本操作Text."
将a转换为a的最简单方法Data.Text是Int什么?read将无法正常工作,因为该read功能总是需要一个String.
我能想到的最好的是:
let fortyTwo = Data.Text.pack "42"
read $ Data.Text.unpack fortyTwo :: Int
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
sha*_*haf 20
看一下这个text包,我看到一个名为的模块Data.Text.Read.它似乎工作:
?> decimal (T.pack "99 bottles")
Right (99," bottles")
?> decimal (T.pack "a digit")
Left "input does not start with a digit"
Run Code Online (Sandbox Code Playgroud)
Tho*_*son 14
换句话说,您需要一个可以使用的解析器Text.hackage上有很多可以使用Text的解析器,我建议你试试attoparsec.
import Data.Attoparsec.Text
parseInt = parseOnly (signed decimal)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7518 次 |
| 最近记录: |