如何在炸药REPL / SHELL中运行Scala REPL命令?

时间:2018-09-26 04:37:11

标签: scala ammonite

我的意思是像:t :type这样的命令来检查表达式的类型或任何其他类型的命令。

炸药背后的想法真的吸引了我,现在我正试图用它来更熟悉scala。

这些命令对我的初学者很有帮助,但是在amm shell中是语法错误。

我已经浏览了ammonite.io的文档,但是找不到提到的任何相关内容。

是否有可能在ammonite shell / repl中运行这些命令?

1 个答案:

答案 0 :(得分:4)

您不能在Ammonite中运行Scala REPL命令,因为它们是Scala REPL命令,而不是Ammonite命令。

Ammonite是与Scala REPL完全不同的程序,其命令语言不同。这就像试图在JavaScript REPL中运行Haskell代码一样。

特别是,Ammonite宁愿使用Scala而不是使用单独的魔术命令语言,因此在Ammonite中,向REPL发出的命令是作为普通Scala方法调用发出的。

默认情况下,导入了两个对象replinterp,它们使您可以与API of the REPL and the interpreter进行交互。例如,对于有关如何获取对象类型的问题,可以使用ReplAPI.typeOf[T: WeakTypeTag](t: => T): Type方法:

repl.typeOf("3" + 2)
//=> res: reflect.runtime.package.universe.Type = TypeRef(ThisType(package lang), class String, List())