以:
结尾的运算符
如果方法以冒号:
结尾,则调用目标是运算符后面的实例。
- 示例
class Cow {
def ^(moon: Moon) = println("Cow jumped over the moon")
}
class Moon {
def ^:(cow: Cow) = println("This cow jumped over the moon too")
}
val cow = new Cow
val moon = new Moon
cow ^ moon
cow ^: moon
以+、-、!、~
结尾的前缀运算符
除了以:
结尾的运算符,还有一套运算符也是以其后的实例为目标的。包括一元运算符+会映射成对unary_+()
的调用,一元运算符-会映射到unary_-()
等。(unary
意指一元
)
- 示例
class Sample {
def unary_+ = println("Called unary +")
def unary_- = println("called unary -")
def unary_! = println("called unary !")
def unary_~ = println("called unary ~")
}
val sample = new Sample
+sample
-sample
!sample
~sample