集合(Scala 2.8 - 2.12)

字符串

语言

与数组类似,字符串不是直接序列,但它们可以转换为序列,并且它们还支持字符串上的所有序列操作。以下是一些可以在字符串上调用的操作示例。

scala> val str = "hello"
str: java.lang.String = hello
scala> str.reverse
res6: String = olleh
scala> str.map(_.toUpper)
res7: String = HELLO
scala> str drop 3
res8: String = lo
scala> str slice (1, 4)
res9: String = ell
scala> val s: Seq[Char] = str
s: Seq[Char] = WrappedString(h, e, l, l, o)

这些操作由两个隐式转换支持。第一个低优先级转换将 String 映射到 WrappedString,它是 immutable.IndexedSeq 的子类,此转换应用于上面最后一行,其中字符串被转换为 Seq。另一个高优先级转换将字符串映射到 StringOps 对象,该对象将不可变序列上的所有方法添加到字符串中。此转换隐式插入到上面示例中 reversemapdropslice 的方法调用中。

此页面的贡献者