$bang() res3: java.la-6ren">
gpt4 book ai didi

scala - 我可以定义一个 bang 运算符方法,但我不能在 Scala 中调用它。为什么?

转载 作者:行者123 更新时间:2023-12-02 03:31:35 26 4
gpt4 key购买 nike

首先我定义了!方法:

scala> def !() = "hi"
$bang: ()java.lang.String

现在我可以这样调用它了:

scala> $bang()
res3: java.lang.String = hi

但这行不通:

scala> !()
<console>:8: error: value unary_! is not a member of Unit
!()

即使这样也行不通:

scala> `!`()
<console>:8: error: value unary_! is not a member of Unit
`!`()
^

我在这里做错了什么?为什么允许我定义 !() 但我不能调用它?

编辑1

添加对象引用会报错:

scala> this.!()
<console>:8: error: value ! is not a member of object $iw
this.!()
^

最佳答案

!foo

被解释为

foo.unary_!

如果你想调用你的方法,你必须指定一个明确的接收者,例如

this.!()

this !()

this ! ()

关于scala - 我可以定义一个 bang 运算符方法,但我不能在 Scala 中调用它。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338352/

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