29.scala编程思想笔记——字符串插值

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50445772
源码下载连接请见第一篇笔记。        

 利用字符串插值,创建的字符串就可以包含格式化的值。

         在字符串的前面放置一个s,在你想让scala插值的标识符之前放置一个$:

例如:

import com.atomicscala.AtomicTest._

 

def i(s:String, n:Int, d:Double):String = {

  s"first:$s, second: $n, third: $d"

}

 

i("hi", 11, 3.14) is

"first: hi, second: 11, third: 3.14"

输出如下:

first: hi, second: 11, third: 3.14

任何以$为先导的标识符都会被转换为字符串形式。

也可以将表达式置于${} 中间来计算和转换该表达式,如下:

import com.atomicscala.AtomicTest._

 

def f(n:Int):Int = { n * 11 }

 

s"f(7) is ${f(7)}!" is "f(7) is77!"

输出如下:

f(7) is 77!

插值也可以用于case类中,如下:

import com.atomicscala.AtomicTest._

 

case class Sky(color:String)

 

s"""${newSky("Blue")}""" is "Sky(Blue)"

执行如下:

Sky(Blue)

字符串周围使用了三重引号,使得可以将sky构造器中的参数用引号引起来。