如何 运行 在 ammonite REPL/SHELL 中使用 Scala REPL 命令?
How to run Scala REPL commands in ammonite REPL/SHELL?
我的意思是像 :t
:type
这样的命令来检查表达式的类型或任何其他类型的命令。
ammonite 背后的想法真的很吸引我,现在我正在尝试使用它来更加熟悉 scala。
这些命令对我这个初学者很有帮助,但在 amm shell 中是语法错误。
我已经浏览了 ammonite.io 的文档,但找不到任何相关的提及。
是否可以在菊石 shell/repl 中 运行 这些命令?
你不能在 Ammonite 中 运行 Scala REPL 命令,因为它们是 Scala REPL 命令,而不是 Ammonite 命令。
Ammonite 是一个与 Scala REPL 完全不同的程序,它的命令语言不同。这就像在 JavaScript REPL 中尝试 运行 Haskell 代码。
特别是,Ammonite 更喜欢使用 Scala 而不是一种神奇的独立命令语言,因此在 Ammonite 中,REPL 的命令作为正常的 Scala 方法调用发出。
有两个默认导入的对象,repl
和 interp
,它们允许您与 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())
我的意思是像 :t
:type
这样的命令来检查表达式的类型或任何其他类型的命令。
ammonite 背后的想法真的很吸引我,现在我正在尝试使用它来更加熟悉 scala。
这些命令对我这个初学者很有帮助,但在 amm shell 中是语法错误。
我已经浏览了 ammonite.io 的文档,但找不到任何相关的提及。
是否可以在菊石 shell/repl 中 运行 这些命令?
你不能在 Ammonite 中 运行 Scala REPL 命令,因为它们是 Scala REPL 命令,而不是 Ammonite 命令。
Ammonite 是一个与 Scala REPL 完全不同的程序,它的命令语言不同。这就像在 JavaScript REPL 中尝试 运行 Haskell 代码。
特别是,Ammonite 更喜欢使用 Scala 而不是一种神奇的独立命令语言,因此在 Ammonite 中,REPL 的命令作为正常的 Scala 方法调用发出。
有两个默认导入的对象,repl
和 interp
,它们允许您与 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())