Scala运算符
算术运算符
+ - * / %
与java一致
关系运算符
!= < > <= >=
与java一致
==
在除字符串以外的情形与java一致。在scala中,字符串的"=="比较的是两个字符串的内容是否相等,而.eq()比较的是两个字符串对象的地址是否相等
object Scala11_operator {
def main(args: Array[String]): Unit = {
// TODO 运算符
val s = new String("abc")
val s1 = new String("abc")
// 底层代码依旧是.equals(),仅限string
val b : Boolean = (s1 == s ) // 返回true
// eq底层调用的反而是java的s == s1,仅限string
val b1: Boolean = (s1.eq(s)) // 返回false
}
}
逻辑运算符
&& || !
与或非没啥好说的
赋值运算符
= += -= *= /= %= <<= >>= &= ^= |=
在Scala中没有三目运算符,但是可以通过采用流程语句实现
位运算符
与java一致
Scala中运算符的本质
在Scala中本没有运算符,省得多了,就有了运算符。
- 当调用对象得方法时,点.可以省略
- 如果函数参数只有一个,或者没有参数,()可以省略
def main(args: Array[String]): Unit = {
// 标准的加法运算
val i:Int = 1.+(1)
// (1)当调用对象的方法时,.可以省略
val j:Int = 1 + (1)
// (2)如果函数参数只有一个,或者没有参数,()可以省略
val k:Int = 1 + 1
println(1.toString())
println(1 toString())
println(1 toString)
}