📜  斯卡拉 | REPL

📅  最后修改于: 2022-05-13 01:54:59.481000             🧑  作者: Mango

斯卡拉 | REPL

Scala REPL 是一个交互式命令行解释器 shell ,其中 REPL 代表Read-Evaluate-Print-Loop 。它的工作原理就像它只代表一样。它首先读取在 Scala 命令行上作为输入提供的表达式,然后在屏幕上评估给定的表达式和打印表达式的结果,然后它再次准备好读取并且这个东西进入循环。根据需要在当前表达式的范围内,自动导入以前的结果。 REPL 在提示符下以交互模式读取表达式,然后将它们包装到可执行模板中,然后编译并执行结果。

REPL的实现
  • 对象或类都可以由用户代码包装,使用的开关是基于 -Yrepl-class 的。
  • 每一行输入都是单独编译的。
  • 前几行的依赖项包含在自动生成的导入中。
  • scala.Predef的隐式导入可以通过输入显式导入来控制。

我们可以通过在控制台/终端中输入scala命令来启动 Scala REPL。

$scala


让我们了解如何使用 Scala REPL 添加两个变量。

在第一行中,我们在 Scala REPL 中初始化了两个变量。然后 Scala REPL 打印了这些。在此我们可以看到,它在内部创建了两个 Int 类型的变量和值。然后我们用定义的两个变量执行 sum 的表达式。用这个 Scala REPL 再次在屏幕上打印表达式的总和。在这里它没有任何变量,因此它仅以res前缀显示它的临时变量。我们可以像创建它一样使用这些变量。

我们可以通过在这些变量上调用getClass函数来获取这些临时变量的更多信息,如下所示。

我们可以在运行时使用 scala REPL 做很多这样的实验,如果我们使用一些 IDE,这将非常耗时。使用 scala2.0,我们还可以通过按 TAB 键列出我们可以应用于变量的所有函数建议。

REPL 的一些更重要的功能
  • REPL 的 IMain 绑定到$intp
  • tab键用于补全。
  • lastException绑定 REPL 的最后一个异常。
  • :load用于加载 REPL 输入文件。
  • :javap用于检查类工件。
  • -Yrepl-outdir用于使用外部工具检查类工件。
  • :power在进入编译器模式后导入编译器组件。
  • :help用于获取帮助用户的命令列表。