小编bda*_*ics的帖子

Scala 中自定义类型的一元运算符定义

尝试运行此代码:

def ! : Int => Boolean = (p : Int => Boolean) => !p

有编译错误:

[error] value unary_! is not a member of Int => Boolean  
[error]   def ! : Int => Boolean = (p : Int => Boolean) => !p  
Run Code Online (Sandbox Code Playgroud)

错误突出显示为“!p”

编译器不应该自动计算出 p 的结果是 aBoolean吗?

提前致谢

编辑:根据评论,也尝试了以下内容。使用其他方法完成了我的任务,但我正在尝试学习如何定义一元运算符

def unary_! : Int => Boolean = (p : Int => Boolean) => !(p(_))

仍然收到编译器错误 "!(p(_))"

scala operator-overloading anonymous-function

1
推荐指数
1
解决办法
2875
查看次数