2011-10-07 34 views
1

我正在使用类型安全来清理字符串,但我想要更多的使用铰接。有人能说出类型安全的用法吗?

+0

你到底在问什么?这就像是问“能否有人阐述我对安全的使用?”,并专门针对特定类型安全的答案:类型安全。安全本身并不“具有”用途,尽管它确实有用。 –

+0

加油吧。这绝对是一个真正的问题。如果我们必须关闭它,我们至少可以将它移动给程序员。说到这一点,在http://programmers.stackexchange.com/questions/59606/is-type-safety-worth-the-trade-offs – MatrixFrog

+0

有一些很好的讨论因为除了我自己之外还有其他4人喜欢hammar对我的糟糕回答措辞问题,我不会删除它。加上MatrixFrog给了一个很好的重新指导。 –

回答

5

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

  • Type-safe URLs防止您的网站从得到断开的链接,如更改或不更新它是用来将导致编译时错误模板移除的路线。
  • 对HTML使用单独的数据类型可以通过确保无法清理用户输入是一种类型错误来防止大量常见的XSS漏洞。
  • 他们的方法键入安全localization避免了许多常见的问题与翻译不同的语言顺序,不同的多元化规则等语言,再次编译器可以警告你,如果消息缺乏翻译。
+0

标记为正确的使用我最喜欢的web框架作为例子!如果我也可以标记迪特里希的回答,我会的。 –

6

当然!

Baghdad :: City 

launchMissilesAt :: City -> IO() 

fibonacci :: Integer -> Integer 

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

+0

很好的例子,除非你使用的功能,必须不被命名... – fuz

+0

@FUZxxl:我假设你正在谈论的功能(有几个),明确违反类型安全。当您使用标记为不安全的功能时,类型安全性不能保证任何内容 - 这就是为什么它们被标记为不安全的原因。 –

+1

...然后有SafeHaskell帮助确保没有(type-)不安全的后门被使用... :-) – hvr

相关问题