将Scala文件加载到解释器中以使用函数?

75 interpreter scala

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

Jam*_*mil 95

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

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

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

小智 19

有时,:paste可能是你的好朋友(比:load).以下是如何使用的示例:粘贴.

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
Run Code Online (Sandbox Code Playgroud)

也可以: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
Run Code Online (Sandbox Code Playgroud)


Esm*_*AEE 5

只是提醒一下,输入完整路径。我通过这样做在 Linux 中发现了问题:

:加载~/文件名.scala

为了摆脱错误“该文件不存在”我做了

:加载/完整/路径/文件名.scala