为什么这不起作用?
implicit class ImplicitHelper[T <: IndexedSeq[String]](i: T) = {
def bar() = ???
}
val foo: Array[String] = ???
foo.bar // no implicit conversion …
在Scala统一集合层次结构中没有Array 实现? IndexedSeq?
更新:正如一些用户指出的那样,虚线表示的不是实现,而是隐式转换。因此,正确的方法是使用视图边界而不是下面每个答案的类型边界
答案 0 :(得分:2)
非连续线表示视图,而不是直接层次结构:
final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable
如您所见,数组不会扩展IndexedSeq
。这些观点代表implicit conversions
所以唯一的意思就是从IndexedSeq
转换为Array
。
答案 1 :(得分:1)
查看绑定的作品:
implicit class ImplicitHelper[T <% IndexedSeq[String]](i: T) {
def bar() = ???
}