03运算符

本文最后更新于 2021-08-05 11:42:59

运算符

基本运算符

运算符 运算 范例 结果
+ 正号 +3 3
- 负号 b=4; -b -4
+ 5+5 10
- 6-4 2
* 3*4 12
/ 除 (丢弃小数) 5/5 1
% 取模(取余) 7%5 2
+ 字符串相加 “He”+”llo” “Hello”

关系运算符

运算符 运算 范例 结果
== 相等于(== 等价于equals equals默认等价于eq,但一般要重写 eq比较地址只能用于AnyRef) 4==3 false
!= 不等于 (AnyRef中有 ne–> !eq) 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 true

逻辑运算符

运算符 描述 实例
&& 逻辑与 (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 & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111
>>> 无符号右移 A >>>2 输出结果 15, 二进制解释: 0000 1111
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
object OperDemo {
def main(args: Array[String]): Unit = {
val a: Int = 10
println(a vv 1)
println(a !)
println(!a)


//11
//3628800
//666
}

implicit class RichInt(arg: Int) {
def vv(a: Int): Int = {
arg + a
}

def !(): Int = {
def loop(i: Int): Int = {
if (i == 1) 1
else i * loop(i - 1)
}

loop(arg)
}
//前置!
def unary_! : Int = 666
}

}

03运算符
https://jiajun.xyz/2020/10/27/scala/03运算符/
作者
Lambda
发布于
2020年10月27日
更新于
2021年8月5日
许可协议