使用 REPL
交互式 Scala
使用 REPL 是 CoddyKit 上的免费 Scala for Backend Engineering & Functional Programming 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Scala for Backend Engineering & Functional Programming 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
什么是 REPL?
REPL 代表读取-求值-打印循环。它是一个交互式 shell,您可以在其中输入 Scala 表达式并立即查看结果。
在终端中运行 scala(或 scala-cli repl)即可启动它。这是在不编写完整程序的情况下试用这门语言的最快方式。
您的第一个表达式
输入任意表达式并按 Enter 键。REPL 会对其求值,并打印结果、类型以及生成的名称。
例如,输入 1 + 1 会显示类似 val res0: Int = 2 的内容。
object Main {
def main(args: Array[String]): Unit = {
println(1 + 1)
}
}res 变量
您计算出的每个结果都会自动保存到名为 resN(res0、res1……)的变量中。
您可以在后续表达式中重复使用这些名称,这让 REPL 用起来就像一个持续运行的计算器。
object Main {
def main(args: Array[String]): Unit = {
val res0 = 2 + 3
val res1 = res0 * 10
println(res1)
}
}类型信息
REPL 最实用的功能之一,就是会告诉您每个结果的类型。
输入 "hello" 会打印 val res0: String = hello。这有助于您了解 Scala 为任意表达式推断出的类型。
object Main {
def main(args: Array[String]): Unit = {
val greeting = "hello"
println(greeting)
}
}定义值
您可以在 REPL 中使用 val 定义命名值。它们会在本次会话的剩余时间内持续存在。
定义后,您可以在后续任意行中引用它们。
object Main {
def main(args: Array[String]): Unit = {
val pi = 3.14159
val radius = 2.0
println(pi * radius * radius)
}
}定义函数
您不受单行代码的限制。您可以直接在 REPL 中定义函数,并立即调用它们。
这样,您就可以逐步构建小型辅助函数并立即测试它们。
object Main {
def square(x: Int): Int = x * x
def main(args: Array[String]): Unit = {
println(square(5))
}
}多行输入
如果您输入的内容不完整(例如输入了一个左花括号),REPL 会显示续行提示,并等待您输入剩余内容。
这意味着您可以自然地粘贴或输入多行定义,而不必担心 REPL 过早求值。
object Main {
def main(args: Array[String]): Unit = {
val total =
1 +
2 +
3
println(total)
}
}在 REPL 中导入
您可以像在文件中一样,在 REPL 内使用 import 导入任何内容。这对于引入标准库中的辅助功能很方便。
例如,import scala.math.* 会为您提供 sqrt、abs 等内容。
import scala.math.sqrt
object Main {
def main(args: Array[String]): Unit = {
println(sqrt(16.0))
}
}实用的 REPL 命令
REPL 提供了一些以冒号开头的特殊命令:
:help列出所有命令:reset清除您的会话:quit退出 REPL:type expr显示表达式的类型,但不运行该表达式
为什么使用 REPL
REPL 非常适合用于:
- 快速试用不熟悉的 API
- 检查表达式产生的类型
- 在将逻辑加入项目之前进行原型设计
- 以交互方式学习这门语言
综合运用
在一次会话中,您可以定义值、编写函数、导入库,并将结果逐步串联起来。REPL 会让所有这些内容都保持在作用域内。
下面是一个可以逐行构建的小示例。
object Main {
def celsiusToF(c: Double): Double = c * 9 / 5 + 32
def main(args: Array[String]): Unit = {
val temps = List(0.0, 25.0, 100.0)
println(temps.map(celsiusToF))
}
}快速检查
测试您对 Scala REPL 的理解。
回顾
您已经了解到,REPL 是 Scala 的交互式读取-求值-打印循环。
- 它会为每个结果打印值、类型和自动生成的
resN名称 - 您可以定义在会话中持续存在的
val和函数 - 您可以使用
import导入库,并使用多行输入 :type、:reset和:quit等命令可以控制会话
常见问题解答
「使用 REPL」课时是免费的吗?
是的 — 「使用 REPL」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Scala for Backend Engineering & Functional Programming 课程的其余内容,请升级到 CoddyKit PRO。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
「使用 REPL」这节课中我会学到什么?
交互式 Scala 你通过在浏览器中直接运行的动手代码来练习 Scala for Backend Engineering & Functional Programming,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Scala for Backend Engineering & Functional Programming 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Scala for Backend Engineering & Functional Programming 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「使用 REPL」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Scala for Backend Engineering & Functional Programming 课中编写并运行代码吗?
能。每节 Scala for Backend Engineering & Functional Programming 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 REPL
- val、var 与类型
- 表达式优于语句
- 字符串插值