String当作集合处理时的方法

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)

String当作集合处理时的方法》上有1个想法

  1. 为什么scala string得API没有StringOps隐式转化得体现呢,而且API应该是只有扩展方法,java所有得string方法并没有体现,都在StringOps中,scala小白..

发表评论

电子邮件地址不会被公开。 必填项已用*标注