将Scala文件加载到解释器以使用功能吗?


78

我在文件中而不是在类中定义了一些Scala函数,我想在Scala解释器中使用它们。我知道我可以说scala filename.scala只运行文件并退出解释器,但是我想先运行文件然后留在解释器中,这样我才能进行一些测试。谁能告诉我如何将文件简单地加载到解释器中,以便我可以使用其中定义的功能?


21
:load /path/to/file在斯卡拉REPL
贾米尔

1
太棒了,这正是我想要的。不知道为什么这么难找到。

1
Jamil,请将此作为答案发布,以便Bea Metitiri可以将其标记为答案。
Illarion Kovalchuk

Answers:


98

输入:load /path/to/fileScala REPL。

您可以通过键入获取可用命令的完整列表 :help


3
这似乎一次只能评估一个定义,如果文件具有密封特征或前向引用,则该定义将无效。:paste /path/to/file如Suresh的回答所述,效果更好。
Brian McCutchon

21

有时候,:paste可能是您更好的朋友(比:load)。这是有关如何使用:paste的示例。

scala> :paste
// Entering paste mode (ctrl-D to finish)

if (true)
  print("that was true")
else
  print("false")

[Ctrl-D]

// Exiting paste mode, now interpreting.

that was true

也可以:paste使用以下命令来加载文件:paste [path]

scala> :paste ~/Desktop/repl_seeder.scala
Pasting file ~/Desktop/repl_seeder.scala...
defined object test1

scala> test1.main(Str)
my first scala program

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.