String
会被隐式转换为 StringOps
StringOps extends StringLike
StringLike
是个支持协变类型的trait,混入了 IndexedSeqOptimized[Char, Repr]
和Ordered[String]
StringLike[+Repr] extends collection.IndexedSeqOptimized[Char, Repr] with Ordered[String]
scala> val str = "hello"
str: java.lang.String = hello
scala> str.reverse // GenSeqLike 中的方法
res6: String = olleh
scala> str.map(_.toUpper) // map方法
res7: String = HELLO
scala> str(0) //apply(i:Int) 是在GenSeqLike特质里定义的
res5: Char = h
scala> str drop 3 // TraversableLike 里的方法
res8: String = lo
scala> str slice (1, 4) // GenTraversableLike 里的方法
res9: String = ell
scala> val s: Seq[Char] = str
s: Seq[Char] = WrappedString(h, e, l, l, o)
为什么scala string得API没有StringOps隐式转化得体现呢,而且API应该是只有扩展方法,java所有得string方法并没有体现,都在StringOps中,scala小白..