【问题标题】:Why value of y and +y is same in scala REPL in below scenario为什么在以下场景中 scala REPL 中 y 和 +y 的值相同
【发布时间】:2021-10-08 16:18:51
【问题描述】:
scala> val y=20
val y: Int = 20

scala> y
val res0: Int = 20

scala> +y
val res1: Int = 20

【问题讨论】:

  • 嗨普拉哈尔!欢迎来到stackoverflow :) 你认为+y 的正确值是多少?请尝试向我们提供更多详细信息。
  • 好吧,我是 scala 的初学者。所以我想了解为什么 scala 对两者都一视同仁。根据我的说法,它应该抛出类似 not found: value +y 的错误
  • 你觉得-y应该怎么做?为什么+y 会有所不同?
  • 公平地说,scala 在底层接受一元前缀+ 仅用于定义了方法unary_+ 的对象。因此,在这种情况下,Int 类具有此方法,如 documentation 所示。但是,是的,正如@Tim 所说,这是主流编程语言中的常见行为:)

标签: scala read-eval-print-loop


【解决方案1】:

答案是有道理的。 +y 等价于+(y) 的函数调用(虽然它是一个操作)。在这种情况下,如果您执行-y,它会给出-20 的答案,这又是正确的。

这对于大多数编程语言来说都是非常典型的。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2012-02-21
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多