Reputation: 8477
First I define !
method:
scala> def !() = "hi"
$bang: ()java.lang.String
Now I can call it like so:
scala> $bang()
res3: java.lang.String = hi
But this doesnt' work:
scala> !()
<console>:8: error: value unary_! is not a member of Unit
!()
Even this doesn't work:
scala> `!`()
<console>:8: error: value unary_! is not a member of Unit
`!`()
^
What am I doing wrong here? Why am I allowed to define !()
when I can't invoke it?
EDIT1
Adding an object reference gives error:
scala> this.!()
<console>:8: error: value ! is not a member of object $iw
this.!()
^
Upvotes: 3
Views: 433
Reputation: 369420
!foo
is interpreted as
foo.unary_!
If you want to call your method, you must specify an explicit receiver, e.g.
this.!()
or
this !()
or
this ! ()
Upvotes: 1