【发布时间】:2013-02-20 15:31:55
【问题描述】:
所以我一直在尝试通过twitter Scala school 学习 Scala。但我目前被困在他们的type bound examples 之一。
特别是,它是使用<%< 类型关系运算符将类型绑定为特定类型的类型。
当我在 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 - 所以也许这已经被删除了?如果是这样,为什么这看起来像是一个有用的运算符?
【问题讨论】:
-
看起来这在 Scala 2.10 中不存在,虽然我不确定为什么 - github.com/scala/scala/blob/v2.10.0/src/library/scala/…
-
好找到了!看起来正是我在下面猜测的原因。
标签: scala type-bounds