有人可以为我阐明类型安全的用途吗?

时间:2011-10-07 23:18:32

标签: haskell types

我正在使用类型安全来消毒字符串,但我希望更多的用法明确。

2 个答案:

答案 0 :(得分:6)

当然!

Baghdad :: City

launchMissilesAt :: City -> IO ()

fibonacci :: Integer -> Integer

根据类型安全规则,我们知道fibonacci无法在巴格达发射导弹。 (请注意unsafePerformIO因某种原因被标记为“不安全” - 它可能违反了类型安全。请谨慎使用!)

答案 1 :(得分:5)

Yesod web framework有几个很好的例子,说明如何在真实世界的代码中使用类型安全性。

  • Type-safe URLs可以防止您网站上的链接被破坏,因为更改或删除路由而不更新使用它的模板会导致编译时错误。
  • 使用HTML的单独数据类型可以确保无法清理用户输入是类型错误,从而防止了许多常见的XSS漏洞。
  • 他们对类型安全localization的方法避免了转换为具有不同单词顺序,不同复数规则等语言的许多常见问题,并且编译器可以再次警告您消息是否缺少翻译。