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