scala中StringContext支持3種插值操作:s|f|raw。分別是變量替換;字符串格式化和非轉(zhuǎn)義字符。
比如:val t = s"1+1=${1+1}" // t: String = 2
val pi=3.1415926d
val s = f"$pi%2.3f" // s: String = 3.142
val x = r"a\nb" // x: String = a\nb
StringContext 還支持更高級(jí)的用法,比如可以仿照s|f|raw的實(shí)現(xiàn)自己實(shí)現(xiàn)一個(gè)隱式類(lèi),以StringContext作為參數(shù)。比如
implicit class JsonHelper(sc: StringContext) {
def json(args: Any*) = {
val params = sc.parts.Iterator
val value = args.Iterator
// ....
}
}