目录
运算符
scala的运算符和Java的运算符使用基本相同。
算术运算符
运算符 | 运算 | 范式 | 结果 |
+ | 正号 | +1 | 1 |
- | 负号 | a=1;-1 | -1 |
+ | 加 | 1+1 | 2 |
- | 减 | 2-1 | 1 |
* | 乘 | 2*3 | 6 |
/ | 除 | 2/2 | 1 |
% | 取余 | 3%2 | 2 |
+ | 字符串相加 | “hi” + “jeffry” | “hijeffry” |
关系运算符
运算符 | 运算 | 范式 | 结果 |
== | 等于 | 3 = 3 | true |
!= | 不等于 | 3 != 3 | false |
> | 大于 | 4 > 3 | true |
< | 小于 | 3 < 2 | false |
>= | 大于等于 | 5 >= 4 | true |
<= | 小于等于 | 5 <= 4 | false |
object Test01 {
def main(args: Array[String]): Unit = {
// 测试
var a = 4
var b = 8
println(a > b)
println(a < b)
println(a >= b)
println(a <= b)
println(a == b)
println(a != b)
println("========")
//Java:==比较两个变量本身的值,equals比较字符串中所包含的内容是否相同
//Scala:==更加类似于Java中的equals,参照jd工具
val str1 = "zxc"
val str2 = new String("zxc")
println(str1 == str2)
println(str1.eq(str2))
}
}
逻辑运算符
用于连接多个条件(一般来讲就是关系表达式),最终的结果是一个Boolean值。
如果a为true;b为false
运算符 | 描述 | 实例 |
&& | 与 | (a && b)结果为false |
|| | 或 | (a || b)结果为true |
! | 非 | (a ! b)结果为true |
赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量。
运算符 | 描述 | 实例 |
= | 简单的赋值运算符,将一个表达式的值赋给一个左值 | C = A + B 将 A + B 表达式结果赋值给 C |
+= | 相加后再赋值 | C += A 等于 C = C + A |
-= | 相减后再赋值 | C -= A 等于 C = C - A |
*= | 相乘后再赋值 | C *= A 等于 C = C * A |
/= | 相除后再赋值 | C /= A 等于 C = C / A |
%= | 求余后再赋值 | C %= A 等于 C = C % A |
<<= | 左移后赋值 | C <<= 2 等于 C = C << 2 |
>>= | 右移后赋值 | C >>= 2 等于 C = C >> 2 |
&= | 按位与后赋值 | C &= 2 等于 C = C & 2 |
^= | 按位异或后赋值 | C ^= 2 等于 C = C ^ 2 |
|= | 按位或后赋值 | C |= 2 等于 C = C | 2 |
位运算符
下表中变量a为60,b为13
运算符 | 描述 | 实例 |
& | 按位与运算符 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在 一个有符号二进制数的补码形式。 |
<< | 左移动运算符 | a << 2 输出结果 240 ,二进制解释: 0011 0000 |
>> | 右移动运算符 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
>>> | 无符号右移 | a >>>2 输出结果 15, 二进制解释: 0000 1111 |
scala运算符本质
在Scala中其实是没有运算符的,所有运算符都是方法。
(1)当调用对象的方法时,点.可以省略。
(2)如果函数参数只有一个,或者没有参数,()可以省略。
object Test02 {
def main(args: Array[String]): Unit = {
// 标准的加法运算
val i:Int = 1.+(1)
// (1)当调用对象的方法时,.可以省略
val j:Int = 1 + (1)
// (2)如果函数参数只有一个,或者没有参数,()可以省略
val k:Int = 1 + 1
println(i,j,k)
println("=========")
println(1.toString())
println(1 toString())
println(1 toString)
}
}