您的位置:首页 > 游戏 > 手游 > 网页javascript设计网站_seo网站推广简历_培训心得体会1000字_长尾关键词是什么意思

网页javascript设计网站_seo网站推广简历_培训心得体会1000字_长尾关键词是什么意思

2025/5/9 2:09:19 来源:https://blog.csdn.net/2303_79480422/article/details/145900133  浏览:    关键词:网页javascript设计网站_seo网站推广简历_培训心得体会1000字_长尾关键词是什么意思
网页javascript设计网站_seo网站推广简历_培训心得体会1000字_长尾关键词是什么意思

在 Scala 中,字符串插值是通过在字符串前添加特定前缀实现的,主要有三种标准插值器:sf 和 raw。它们的核心用法如下:


1. s 插值器(简单插值)

  • 作用:将变量或表达式直接嵌入字符串。
  • 语法s"..." + $变量名 或 ${表达式}
  • 示例

    scala复制代码

    val name = "Alice"
    val age = 30
    val str = s"Name: $name, Age: $age" // 直接引用变量
    // 输出:Name: Alice, Age: 30val calc = s"Next year: ${age + 1}" // 表达式需用 {} 包裹
    // 输出:Next year: 31

2. f 插值器(格式化插值)

  • 作用:支持类似 printf 的格式化输出,类型安全。
  • 语法f"..." + %格式化符
  • 示例

    scala复制代码

    val height = 1.75
    val str = f"Height: $height%.2f meters" // 保留两位小数
    // 输出:Height: 1.75 metersval num = 10
    val padded = f"Number: $num%04d" // 补零到4位
    // 输出:Number: 0010
  • 注意:格式化符需与变量类型匹配(如 %d 用于整数,%s 用于字符串)。

3. raw 插值器(原始字符串)

  • 作用:禁用转义字符处理,直接输出原始内容。
  • 语法raw"..."
  • 示例

    scala复制代码

    val path = raw"C:\Users\Alice\note.txt" // \n 不会被转义为换行
    // 输出:C:\Users\Alice\note.txt

4. 自定义插值器(高级用法)

可通过实现 StringContext 的方法自定义插值器,例如:

scala复制代码

implicit class JsonInterpolator(val sc: StringContext) extends AnyVal {def json(args: Any*): String = {// 自定义逻辑(如生成 JSON)s"JSON: ${args.mkString}"}
}val key = "name"
val value = "Bob"
val jsonStr = json"key=$key, value=$value" // 自定义插值器
// 输出可能:JSON: key=name, value=Bob

注意事项

  1. 前缀必须紧接字符串s"..." 不能写成 s "..."(空格会报错)。
  2. 表达式需用 {} 包裹:复杂表达式如 ${user.getName.toUpperCase}
  3. 类型安全f 插值器会检查格式化符与变量类型是否匹配。
  4. 隐式转换:插值器本质是通过隐式类扩展 StringContext 实现的。

对比其他语言

  • 类似 Python 的 f-stringf"{name}" vs Scala 的 s"$name"
  • 类似 JavaScript 模板字符串${name} vs Scala 的 ${name}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com