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方法, 然后输出所述字符串的反面。
注意 :
逆转
是此处用来反转给定字符串的函数。
推荐阅读
- 算法设计(使用XOR和表查找计算数字的奇偶校验)
- CSS组合器/组合符详细介绍和用法
- Python在list中的替代元素求和
- 算法设计(查找给定总和的子数组|S1(非负实数))
- 深度win7旗舰版32位最新系统推荐
- win764位系统装32位系统图文详细教程图解
- 装机高手教你如何在win10下重装win8.1
- win7 64位纯净版硬盘安装图文详细教程图解
- 装机高手教你win7 32位与64选择哪个好?