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 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法