Scala | StringContext
StringContext是一个类,用于字符串插值,允许用户在处理后的字符串文本中插入变量引用而不需要任何中间人。默认情况下,该类提供了raw、s和f方法作为插值器。这里的线性超类型是Serializable、java.io.Serializable、Product、Equals、AnyRef和Any。
- 使用可用的s方法作为插值器的示例。
例子:
//Scala编程的
//StringContext
//创建对象
object Main
{
//主方法
def main(args: Array[String])
{
//赋值
val name = "GeeksforGeeks"
val articles = 32
//应用s方法的StringContext
val result = StringContext("我已经写了",
"篇关于", "的文章。").s(articles, name)
//输出结果
println(result)
}
}
输出:
我已经写了32篇关于GeeksforGeeks的文章。
在这里,使用了StringContext.s方法来提取常量部分,翻译包含的转义序列并将它们与所述表达式参数的值添加在一起。
这里返回的输出如下:
"我已经写了" + (articles) + "篇关于" + (name) + "的文章。"
这里,变量articles和name被替换为它们的值。
- 创建我们自己的插值器:为了提供我们自己的字符串插值器,我们需要生成一个隐式类,该类将附加一个方法到StringContext类。 例子:
//Scala编程的StringContext
//为创建我们自己的字符串
//插值器
//创建对象
object Main
{
//主方法
def main(args: Array[String])
{
//使用带有StringContext的隐式类
implicit class Reverse (val x : StringContext)
{
//定义一个方法
def revrs (args : Any*) : String =
{
//应用s方法
val result = x.s(args : _*)
//应用reverse方法
result.reverse
}
}
//赋值
val value = "GeeksforGeeks"
//显示所述字符串的反转
println (revrs"$value")
}
}
输出:
skeeGrofskeeG
在这里,定义的方法revrs将其每个参数传递到s方法,然后打印所述字符串的反转。
注意:reverse函数在此处用于反转所给出的字符串。
阅读更多:Scala 教程