视界(“类型类”)
视界,就像类型边界,要求对给定的类型存在这样一个函数。您可以使用<%指定类型限制,例如:
scala> class Container[A <% Int] { def addIt(x: A) = 123 + x }
defined class Container
这是说 A 必须“可被视”为 Int 。让我们试试。
scala> (new Container[String]).addIt("123")
res11: Int = 246
scala> (new Container[Int]).addIt(123)
res12: Int = 246
scala> (new Container[Float]).addIt(123.2F)
<console>:8: error: could not find implicit value for evidence parameter of type (Float) => Int
(new Container[Float]).addIt(123.2)
^