0Pricing
Scala for Backend Engineering & Functional Programming · 课时

使用 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 REPL
  2. val、var 与类型
  3. 表达式优于语句
  4. 字符串插值
← 返回 Scala for Backend Engineering & Functional Programming