开发者学堂课程【Scala 核心编程 - 进阶:操作符的扩展】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9065
操作符的扩展
操作符扩展
1.如果想在变量名、类名等定义中使用语法关键字(保留字),可以配合反引号【案例演示】
Val’val’=42
2.中置操作符:A操作符B等同于 A.操作符(B)
Val n1=1
Val n2=2
Val r1=n1+n2
Val r2=n1+n2//看lnt的源码即可说明
Tprintln(”r1=”+r1=”r2=”+r2)
Val dog=new dog
Dog.+(90)
Dog+10
Print(dog.age)//101
操作演示:
package com . atguigu .chapter11
object OperatorDemo91{
def main ( args : Array [ string ]): Unit ={
val n1=1
val n2=2
val r =n1+n2//3
val r2=n1.+(n2)//3看 Int 的源码即可说明
val monster = new Monster
monster +10
monster .+(10)
println(”monster.money=”+monster.money)
}
}
class Monster {
var money : Int =0
//对操作符进行重载(中置操作符)
def +( n : Int ): Unit ={
this . money += n
}
}
3.后置操作符:
A操作符等同于A操作符,如果操作符定义的时候不带()则调用时不能加括号[案例演示+代码说明]
//操作符 class Operate
val oper=new Operate //定义函数/方法的时候,省略的()
printin(oper++) def ++="123"
printin(oper.++) }
操作演示:
println (" monster . money =”+ monster . money ) //20
println ( monster ++)
print Ln ( monster .++)
println (" monster . money =”+ monster . money ) //22
}
}
class Monster {
Var money : Int =0
//对操作符进行重载(中置操作)
def +( n : Int ): Unit ={
this . money +=n
}
//对操作符进行重载(后置操作符)
def ++(): Unit ={
this.money+=1
}
}
4.前置操作符, +、 -、!、~等操作符A等同于A.unary-操作符[案例演示]
class Operate{
//声明前置运算符 //操作符
//unary:一元运算符 val oper=newOperate
def unary!=println("!!!!!!!") loper//前置运算符
}
操作演示:
println (" monster . money =”+ monster . money ) //20
println ( monster ++)
print Ln ( monster .++)
println (" monster . money =”+ monster . money ) //22
}
}
class Monster {
Var money : Int=0
//对操作符进行重载(中置操作符)
def +( n : Int ): Unit ={
this . money += n
}
//对操作符进行重载(后置操作符)
def ++(): Unit ={
5.赋值操作符,A操作符=B等同于A=A操作符B,比如A+=B等价A=A+B