Haskell重载字符串
示例
通常,Haskell中的字符串文字的类型为String(这是的类型别名[Char])。尽管对于较小的教育计划而言这不是问题,但现实世界中的应用程序通常需要更高效的存储,例如Text或ByteString。
OverloadedStrings只需将文字类型更改为
"test" :: Data.String.IsString a => a
允许将它们直接传递给期望这种类型的函数。许多库针对其类似字符串的类型实现此接口,包括Data.Text和Data.ByteString,它们都提供了超过时的空间和空间优势[Char]。
还有一些独特的用法,OverloadedStrings例如Postgresql-simple库中的用法,该用法允许SQL查询以双引号(如普通字符串)的形式编写,但提供了防止不当串联(一种众所周知的SQL注入攻击源)的保护措施。
要创建IsString该类的实例,您需要隐含该fromString函数。范例†:
data Foo = A | B | Other String deriving Show instance IsString Foo where fromString "A" = A fromString "B" = B fromString xs = Other xs tests :: [ Foo ] tests = [ "A", "B", "Testing" ]
†此示例由LyndonMaydwell(sordina在GitHub上)提供,位于此处。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下