Scala字符串插值实例详解

本文概述

从Scala 2.10.0开始, Scala提供了一种从数据创建字符串的新机制。这称为字符串插值。字符串插值允许用户将变量引用直接嵌入处理后的字符串文字中。 Scala提供了三种字符串插值方法:s, f和raw。


Scala程序示例:不使用s方法

这是一个简单的示例, 该示例未在字符串中使用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

Scala字符串插值示例

该程序在打印功能中使用字符串插值。你可以看到插值的优势。在这里, 我们没有使用+运算符来连接字符串对象。

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方法的Scala字符串插值示例

字符串插值的s方法允许我们在字符串对象中传递变量。你不需要使用+运算符来格式化输出字符串。在以下示例中, 字符串变量在打印功能中传递给字符串。该变量由编译器求值, 并由值替换。

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方法的Scala字符串插值示例

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

使用原始方法的Scala字符串插值示例

字符串插值的原始方法用于生成原始字符串。它不解释字符串中存在的特殊字符。让我们来看一个例子。

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
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?