【问题标题】:How to run Scala REPL commands in ammonite REPL/SHELL?如何在 ammonite REPL/SHELL 中运行 Scala REPL 命令?
【发布时间】:2019-03-01 18:38:35
【问题描述】:

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

ammonite 背后的想法真的很吸引我,现在我正在尝试用它来更熟悉 scala。

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

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

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

【问题讨论】:

    标签: scala ammonite


    【解决方案1】:

    您不能在 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())
    

    【讨论】:

    • 非常感谢,你能解释一下这个typeOf("32") 的输出吗?这似乎不是很简单
    猜你喜欢
    • 2012-04-10
    • 2021-10-23
    • 2018-10-19
    • 2015-04-20
    • 1970-01-01
    • 2020-11-19
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多