为什么这不起作用?

implicit class ImplicitHelper[T <: IndexedSeq[String]](i: T) = {
    def bar() = ???
}

val foo: Array[String] = ???
foo.bar // no implicit conversion …


数组没有实现吗? Scala统一集合层次结构中的IndexedSeq?

更新:正如一些用户指出的那样,虚线不是实现,而是隐式转换。因此正确的方法是使用视图范围而不是下面每个答案的类型范围

java - 用于隐式转换集合的Scala类型方差-LMLPHP

最佳答案

不连续的线表示视图,而不是直接的层次结构:

final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable


如您所见,数组不会扩展IndexedSeq。这些视图代表implicit conversions

java - 用于隐式转换集合的Scala类型方差-LMLPHP

因此,这唯一的意思是从IndexedSeqArray的转换。

07-26 03:29