所以我一直在尝试通过twitter Scala school学习 Scala 。但我目前停留在他们的类型绑定示例之一。
<%<
特别是,它是使用类型关系运算符将类型绑定为特定类型的类型。
当我在 Scala 控制台中执行以下代码时:
scala> class Container[A](value: A) { def addIt(implicit evidence: A <%< Int) = 123 + value }
...我收到以下错误:
<console>:7: error: not found: type <%<
class Container[A](value: A) { def addIt(implicit evidence: A <%< Int) = 123 + value }
^
<console>:7: error: overloaded method value + with alternatives:
(x: Double)Double <and>
(x: Float)Float <and>
(x: Long)Long <and>
(x: Int)Int <and>
(x: Char)Int <and>
(x: Short)Int <and>
(x: Byte)Int <and>
(x: String)String
cannot be applied to (A)
class Container[A](value: A) { def addIt(implicit evidence: A <%< Int) = 123 + value }
我的问题是,为什么 Scala 解释器会抱怨?
我一直在尝试浏览 Scala 文档,但我无法在任何地方找到该操作员的信息。我可以看到 Scala 学校是在 Scala 2.8.0 的基础上创建的,而我正在运行 Scala 2.10.0 - 所以也许这已经被删除了?如果是这种情况,为什么这似乎是一个有用的运算符?