- 如果想在变量名,类名等定义中使用关键字(比如val ,int,double 这样的系统关键字) 可以配合两个反引号实现,引用时候也要带引号
- 中置操作符: A 操作符 B 等价于 A . 操作符(B) ,但 1::Nil 等价于 Nil.::(1)
- 后置操作符: A 操作符 等同于 A.操作符,如果操作符定义的时候不带(),调用时候不能加(),定义时候带() 可以在调用时候不加()
- 前置操作符: + 、-、*、/ 、!、~等操作符。 操作符 A 等价于 A.unary_操作符
- 赋值操作符: A 操作符= B 等价于 A = A 操作符 B,比如 A+=B 等价 A= A + B
以上只是针对于绝大部分情况。
demo如下:
object aiguigu {
def main(args: Array[String]): Unit = {
var `var` = 12
`var` += 10
val n1 = 1
val n2 = 2
var r1 = n1 + n2
var r2 = n1.+(n2)
val test = new Demo
test + 10
test.+(10)
test++
// 上下之间必须有空格不知道为什么
test.++
println(test.money)
!test
println(test.money)
}
}
class Demo {
var money: Int = 0
def +(n: Int) = this.money += n
def ++() = this.money += 1
def unary_!() = this.money = -this.money
}