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

 

posted @ 2018-12-13 23:00  舞羊  阅读(466)  评论(0编辑  收藏  举报