我可以这样命名对象,但不能调用m
:
object + {
def m (s: String) = println(s)
}
无法通话+.m("hi")
:
<console>:1: error: illegal start of simple expression
+.m("hi")
也无法打电话+ m "hi"
(首选 DSL 使用)。
但与object ++
效果很好!它们是否冲突(不存在)unary_+
方法?有可能避免这种情况吗?
事实上,对于一元运算符来说这是不可能的。如果你想调用它,你可以使用编译器为 JVM 生成的名称(以美元开头):
scala> object + {
| def m( s: String ) = println(s)
| }
defined module $plus
scala> +.m("hello")
<console>:1: error: illegal start of simple expression
+.m("hello")
^
scala> $plus.m("hello")
hello
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)