Haskell语言学习笔记(93)Data.Text

Data.Text.Read

Prelude> :set -XOverloadedStrings
Prelude> :m +Data.Text.Read
Prelude Data.Text.Read> decimal "123"
Right (123,"")
Prelude Data.Text.Read> decimal "abc"
Left "input does not start with a digit"
Prelude Data.Text.Read> rational "123.4"
Right (123.4,"")
Prelude Data.Text.Read> signed double "-3.4"
Right (-3.4,"")
decimal :: Integral a => Reader a
type Reader a = IReader Text a
type IReader t a = t -> Either String (a, t)
  • Data.Text.Read 中的函数用于解析 Text 类型的字符串,将其装换为数值类型。
  • decimal 函数负责解析整数值,它接收一个 Text 类型的字符串作为参数,返回 Either 类型的值。
    成功时返回一个二元组,字符串所包含的数值以及剩余的字符串
    失败时返回错误信息:该输入不以数字开头
  • rational 函数与 decimal 相类似,它负责解析有理数的值。

Data.Text.IO

Data.Text.IO 模块负责 Text 的输入和输出。

Prelude> :set -XOverloadedStrings
Prelude> import qualified Data.Text.IO as TIO
Prelude TIO> TIO.putStrLn "Хорошо!"
Хорошо!
Prelude TIO> TIO.putStrLn "哈斯克尔7.6.1的力量"
哈斯克尔7.6.1的力量
Prelude TIO> TIO.putStrLn "感じる"
感じる

Data.Text.Encoding

Prelude> :set -XOverloadedStrings
Prelude> :m +Data.Text
Prelude Data.Text> :m +Data.Text.Encoding
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "Хорошо!"
"208165208190209128208190209136208190!"
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "哈斯克尔7.6.1的力量"
"229147136230150175229133139229176148&7.6.1231154132229138155233135143"
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "感じる"
"230132159227129152227130139"
Prelude Data.Text Data.Text.Encoding> import qualified Data.Text.IO as TIO
Prelude Data.Text Data.Text.Encoding TIO> TIO.putStrLn $ decodeUtf8 "230132159227129152227130139"
感じる
原文地址:https://www.cnblogs.com/zwvista/p/9943837.html