0506.字串(String)

String

Scala 對映直接使用 java.lang.String. 除了 String 類型以別名(Alias)方式使用原生 JVM (java.lang.String) 或 .NET CLR 平台 String 之外, 其它的型別, 都以 Scala._ 套件中載明對映 Java 的 API 關係, 優點表現在與 Java 互操作性時不會帶來因類型轉換所造成的性能耗損.

2.8版改進的String


Scala2.8 中取消了 scala.runtime.RichString 類型,轉而在 scala.collection.immutable._ 中增加了 StringOps 和 WrappedString 類型。它們的轉換和用法與 2.8版新的陣列轉換和用法相似。



scala.collection.immutable._

classStringOps extends StringLike[String]

This class serves as a wrapper providing Strings with all the operations found in indexed sequences. Where needed, instances of String object are implicitly converted into this class.

The difference between this class and WrappedString is that calling transformer methods such as filter and map will yield a String object, whereas aWrappedString will remain a WrappedString.





多行式字串類型


Scala 支持多行式字串表達, 或者稱為 here document, 或者 heredoc, 使用連續3個雙引號的開頭和結尾包覆即可, 例如:


多行字串最有用的地方在於正則表達式!!!

scala> "S"
res6: java.lang.String = S

scala> """Hello,
     | World.
     | """
res36: java.lang.String =
Hello,
       World.

允許雙引號存在於 heredoc 中,
scala> val x = """
     | Hello, "World!", 
     | Kuo
     | """
x: java.lang.String = 

Hello, "World!", 
Kuo


Comments