scala字符串插值
Scala 2.10.0 为我们提供了三种字符串插值的方式,分别是 s, f 和 raw。它们都是定义在 StringContext 中的方法。
s 字符串插值器
可以解析字符串中的变量,可以调用方法,还能进行计算。
import scala.collection.mutable.ArrayBuffer val a = ArrayBuffer(0, 1, 2, 3, 4) for(i <- 0 until a.length) println(s"第${i}个元素是${a(i)}")
结果:
第0个元素是0
第1个元素是1
第2个元素是2
第3个元素是3
第4个元素是4
f 字符串插值器
它除 s 的功能外(不指定格式就和 s 一样),还能进行格式化输出,在变量后用 % 指定输出格式,格式的说明参照 Java 的 Formatter javadoc。实际调用的是 StringContext 中的 f 方法。
import scala.collection.mutable.ArrayBuffer val a = ArrayBuffer(0, 1, 2, 3, 4) for(i <- 0 until a.length) println(f"第${i}个元素是${a(i)}%3d")
结果:
第0个元素是 0
第1个元素是 1
第2个元素是 2
第3个元素是 3
第4个元素是 4
可以看到,数组缓冲中的值之前多了两个位置。
raw 字符串插值
raw 能让字符串原原本本的输出来,而不是产生控制效果,如对 \n ,\t 等的输出。实际调用的是 StringContext 中的 raw 方法。
println("a\tb\tc") 结果: a b c println(raw"a\tb\tc") 结果: a\tb\tc