gpt4 book ai didi

scala - 为什么 scala REPL 和 Ammonite 在这一点上表现不同,哪种行为是正确的?

转载 作者:行者123 更新时间:2023-12-02 08:15:13 24 4
gpt4 key购买 nike

Scala 表达式

.3.+(5)
正如我所料,

在 Ammonite-REPL 中的结果为 5.3。但是,在 Scala REPL 中,它会产生语法错误,打印

scala> .3.+(5)
<console>:1: error: ';' expected but double literal found.
$intp.3.+(5)
^

直觉上,.3.+(5) 对我来说似乎是一个有效的表达式。 Ammonite 中有错误还是 Scala REPL 中有错误?

最佳答案

该特定表达式在 Scala REPL 中不起作用,因为它具有允许您在输出的最后一个表达式上调用方法的功能。 REPL session 中的最后一个表达式必须命名为 $intp。此功能通常这样使用:

scala> List(1, 2, 3, 4)
res14: List[Int] = List(1, 2, 3, 4)

scala> .map(_ + 1)
res15: List[Int] = List(2, 3, 4, 5)

在您的情况下,Scala REPL 认为您正在尝试在最后一个输出上调用名为 .3 的方法。我无法在 Ammonite 文档中找到任何内容,也无法通过试用表明它支持此功能。也就是说,Ammonite 不支持我在上面粘贴的示例,这可能是一种不那么令人困惑的做事方式。

关于scala - 为什么 scala REPL 和 Ammonite 在这一点上表现不同,哪种行为是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com