Scala StringContext

Scala StringContext

StringContext是一个用于字符串插值的类,它允许终端用户在处理过的String字段中插入变量引用,而无需任何中介。该类默认提供raw、s和f方法作为插值器。这里的线性超类型是Serializable、java.io.Serializable、Product、Equals、AnyRef和Any。

  • 一个使用可用的s方法作为插值器的例子。

示例 :

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

输出 :

have written 32 articles on GeeksforGeeks.

在这里,StringContext.s方法被用来提取常量部分,翻译包含的转义序列,并将它们与所述表达式参数的值相加。
这里的输出像下面一样被返回。

"I have written " + (articles) + " articles on " + (name) + "."

其中,变量article和name被替换成它们的值。

  • 创建我们自己的插值器:为了提供我们自己的字符串插值器,我们需要产生一个隐含的类,将一个方法附加到StringContext类。

示例 :

// Scala program of StringContext 
// for creating our own string
// interpolator
  
// Creating object
object Main 
{ 
  
// Main method 
def main(args: Array[String]) 
{ 
    // Using implicit 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 = "GeeksforGeeks"
  
    // Displays reverse of the
    // stated string
    println (revrs"$value")
}
} 

输出 :

skeeGrofskeeG

在这里,定义的方法revrs将其每个参数传递给s方法,然后打印出所述字符串的反向。
注意:reverse是一个函数,在这里用来反转给定的字符串。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程