是否有统一的方法来执行类型检查的相等性?
很遗憾
val objectA:String = "test"
val objectB:Int = 2
objectA == objectB
如果 objectB 是 Int 而 objectA 是 String,则相等运算符 == 不会抱怨。
我需要一个像 === 这样的运算符来执行类型检查(我希望它对所有 scala obj 都是统一的)。这样的运营商存在吗?
你需要看看scalaz http://code.google.com/p/scalaz/'s === http://scalaz.github.com/scalaz/scalaz-2.9.1-6.0.4/doc.sxr/scalaz/Identity.scala.html#48590对于类型安全的 equals - 它是作为类型类实现的。
您还可以通过以下方式观看演讲海科·西伯格 https://twitter.com/#!/hseeberger,他描述了它是如何实现的:
http://days2011.scala-lang.org/node/138/275 http://days2011.scala-lang.org/node/138/275
您还可以在这里找到一些示例:
http://scalaz.github.com/scalaz/scalaz-2.9.1-6.0.4/doc.sxr/scalaz/example/ExampleEqual.scala.html#24187 http://scalaz.github.com/scalaz/scalaz-2.9.1-6.0.4/doc.sxr/scalaz/example/ExampleEqual.scala.html#24187
(在他们使用的示例中≟
方法,但它只是===
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)