一、逻辑运算符用于连接多个条件(关系表达式),最终的结果也是一个Boolean值
运算符 &&逻辑与 ||逻辑或 !逻辑非、
逻辑与和逻辑或是双目运算符 逻辑非是单目运算符
def m(n:Int):Int={ println("m被调用") return n } val n=1 // println((4 > 5) && m(n) > 0) //做了一个短路的判断,前面已经判断为false了 println((4 < 5) && m(n) > 0) //判断一个字符串是否为空 def isNotEmpty(str:String):Boolean={ return str != null && !("".equals(str.trim)) } println(isNotEmpty(null))
二、赋值运算符
赋值运算符是将某个运算后的值,赋给指定的变量
= 赋值运算符,将一个表达式的值赋给等于号左边的值
+= 相加后再赋值 -=相减后再赋值 *=相乘后再赋值 /=相除后再赋值 %=求余后再赋值 <<=左移后赋值 >>=右移后赋值· &=按位与后赋值 ^=按位异或后赋值 |=按位或后赋值
注意:Scala中没有++、--操作符,可以通过+=、-=来实现同样的效果;
三、位运算符
a=60换为 二进制 00111100
b=13换为 二进制 00001101
& 按位与运算符 a&b 12 二进制 00001100(同为1才是1,其他都为0)
| 按位或运算符 a|b 61 二进制 00111101(有1就为1,其他是0的是0)
^ 按位异或运算符 a^b 49 二进制 00110001(相同的为0,不同的为1)
~ 按位取反运算符 ~a -61 二进制 11000011(相同的为1,不同的为0)
<< 左移动运算符 a<<2 240左移2位相当于乘以2的2次方 二进制 11110000
>> 有移动运算符 a>>2 15右移2位相当于除以2的2次方 二进制 00001111
>>> 无符号右移 不考虑符号,直接右移,前面补0的方式