多行字符串
使用三引号代码块。
多行字符串 是 CoddyKit 上的免费 Scala for Backend Engineering & Functional Programming 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Scala for Backend Engineering & Functional Programming 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
什么是多行字符串?
有时您需要跨越多行的文本,例如消息、JSON 或 SQL 查询。
Scala 允许您使用三重引号来编写这类文本,并且会准确保留您输入的换行。
val text = """Line one
Line two"""
println(text)三引号语法
在文本两侧各加上三个双引号:"""..."""。
在其中,您无需转义普通双引号,因此它非常适合包含引号的文本。
val json = """{"name": "Ada"}"""
println(json)真实换行
在三引号字符串中,按下回车键会在值中创建真正的新行。
这非常适合需要保留布局的文本块。
object Main extends App {
val poem = """Roses are red
Scala is neat"""
println(poem)
}缩进问题
如果您在代码中缩进多行字符串,这些开头的空格就会成为值的一部分。
打印出来时通常会显得杂乱。Scala 提供了一种简洁的方式来去除缩进。
val msg = """Hello
World"""
println(msg)stripMargin
stripMargin 会移除直到边界字符为止的开头空白,默认边界字符是 |。
在每行开头放置一个 |,然后调用 stripMargin,即可整齐地对齐代码。
val msg = """Hello
|World""".stripMargin
println(msg)整洁的多行代码块
将三引号与 stripMargin 结合使用,可以得到易读的代码和整洁的输出。
每行都以 | 开头,打印时会将其去除。
object Main extends App {
val report = """Report
|Total: 5
|Done!""".stripMargin
println(report)
}自定义边界字符
如果 | 与您的文本冲突,您可以向 stripMargin 传入其他边界字符。
例如,可以改用 # 作为边界标记。
val s = """One
#Two""".stripMargin('#')
println(s)带插值的多行字符串
您可以将三引号与 s 插值器结合使用,把值插入多行文本。
在开头的三引号前放置 s,然后像平常一样使用 $variable。
val name = "Sam"
val msg = s"""Hi $name,
|Welcome aboard!""".stripMargin
println(msg)构建 SQL 查询
在后端代码中编写 SQL 或其他较长文本时,多行字符串非常实用。
无论在源代码中还是输出中,布局都保持清晰易读。
val query = """SELECT id, name
|FROM users
|WHERE active = true""".stripMargin
println(query)引号中的引号
在三引号中,普通双引号无需转义。这样可以避免到处写 \" 所造成的杂乱。
它非常适合嵌入 JSON 或带引号的短语。
val line = """He said "hello" to me"""
println(line)与方法结合使用
多行字符串仍然是普通的 String,因此所有常用方法都可以对它使用。
这里会在去除边界后修剪字符串,并统计其长度。
val block = """abc
|def""".stripMargin
println(block.length)
println(block.toUpperCase)快速检查
如何移除多行字符串开头的缩进?
回顾
您学会了使用三引号 """...""" 编写多行文本。三引号会保留换行,也不需要转义引号。
您使用带有 | 标记的 stripMargin 保持代码整洁,将它与 s 插值器结合,并对结果应用普通字符串方法。
常见问题解答
「多行字符串」课时是免费的吗?
是的 — 「多行字符串」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Scala for Backend Engineering & Functional Programming 课程的其余内容,请升级到 CoddyKit PRO。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
「多行字符串」这节课中我会学到什么?
使用三引号代码块。 你通过在浏览器中直接运行的动手代码来练习 Scala for Backend Engineering & Functional Programming,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Scala for Backend Engineering & Functional Programming 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Scala for Backend Engineering & Functional Programming 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「多行字符串」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Scala for Backend Engineering & Functional Programming 课中编写并运行代码吗?
能。每节 Scala for Backend Engineering & Functional Programming 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。