📅  最后修改于: 2021-01-09 11:57:47             🧑  作者: Mango
从Scala 2.10.0开始,Scala提供了一种从数据创建字符串的新机制。这称为字符串插值。字符串插值允许用户将变量引用直接嵌入处理后的字符串字面量。 Scala提供了三种字符串插值方法:s,f和raw。
这是一个简单的示例,在字符串中不使用s方法。
class StringExample{
var pi = 3.14
def show(){
println("value of pi = "+pi)
}
}
object MainObject{
def main(args:Array[String]){
var s = new StringExample()
s.show()
}
}
输出:
value of pi = 3.14
该程序在打印函数使用字符串插值。您可以看到插值的优势。在这里,我们没有使用+运算符来连接字符串对象。
class StringExample{
var pi = 3.14
def show(){
println(s"value of pi = $pi")
}
}
object MainObject{
def main(args:Array[String]){
var s = new StringExample()
s.show()
}
}
输出:
value of pi = 3.14
字符串插值的s方法允许我们在字符串对象中传递变量。您无需使用+运算符来格式化输出字符串。在以下示例中,将字符串变量传递给print函数的字符串 。该变量由编译器求值,并且变量被值替换。
class StringExample{
var s1 = "Scala string example"
def show(){
println(s"This is $s1")
}
}
object MainObject{
def main(args:Array[String]){
var s = new StringExample()
s.show()
}
}
输出:
This is Scala string example
f方法用于格式化字符串输出。就像c语言的printf函数,用于生成格式化输出。您可以在打印函数传递任何类型的变量。
class StringExample{
var s1 = "Scala string example"
var version = 2.12
def show(){
println(f"This is $s1%s, scala version is $version%2.2f")
}
}
object MainObject{
def main(args:Array[String]){
var s = new StringExample()
s.show()
}
}
输出:
This is Scala string example, scala version is 2.12
字符串插值的原始方法用于生成原始字符串。它不解释字符串存在的特殊字符。让我们来看一个例子。
class StringExample{
var s1 = "Scala \tstring \nexample"
var s2 = raw"Scala \tstring \nexample"
def show(){
println(s1)
println(s2)
}
}
object MainObject{
def main(args:Array[String]){
var s = new StringExample()
s.show()
}
}
输出:
Scala string
example
Scala \nstring \nexample