Scala StringContext介绍和详细用法

StringContext是用于字符串插值, 这允许最终用户在处理的String文字中插入变量引用, 而无需任何中介。此类默认提供原始, s和f方法作为插值器。这里的线性超类型是可序列化, java.io.Serializable, 产品, 等于, 任何参考和任何.
使用可用的s方法作为内插器的示例。
范例:

// Scala program of the // StringContext // Creating object object Main { // Main method def main(args : Array[String]) { // Assigning values val name = "lsbin" val articles = 32// Applying StringContext with // s-method val result = StringContext( "I have written " , " articles on " , "." ).s(articles, name)// Displays output println(result)} }

输出:
I have written 32 articles on lsbin.

在这里, StringContext.s方法用于提取常量部分, 转换包含的转义序列, 并将它们与声明的表达式参数的值相加。
返回的输出如下所示:
"I have written " + (articles) + " articles on " + (name) + "."

哪里, 变量文章和名称被它们的值代替。
【Scala StringContext介绍和详细用法】创建我们自己的插值器:
为了提供我们自己的String插值器, 我们需要产生一个隐式类, 该类会将一个方法附加到StringContext类。
范例:
// Scala program of StringContext // for creating our own string // interpolator// Creating object object Main { // Main method def main(args : Array[String]) { // Using impicit class with // StringContext implicit class Reverse ( val x : StringContext) {// Defining a method def revrs (args : Any*) : String = {// Applying s-method val result = x.s(args : _ *)// Applying reverse method result.reverse } }// Assigning values val value = "https://www.lsbin.com/lsbin"// Displays reverse of the // stated string println (revrs "$value" ) } }

输出:
skeeGrofskeeG

在这里, 定义的方法
修订版
将其每个参数传递给s方法, 然后输出所述字符串的反面。
注意 :
逆转
是此处用来反转给定字符串的函数。

    推荐阅读