运算符

教程地址:点击去往视频教程open in new window

1. 算术运算符

运算符描述
+相加
-相减
*相乘
/相除
%求余

例子:

func main() {
	var a int = 21
	var b int = 10
	var c int
	c = a + b
	fmt.Printf("相加: %d\n", c) //31
	c = a - b
	fmt.Printf("相减: %d\n", c) // 11
	c = a * b
	fmt.Printf("相乘: %d\n", c) // 210
	div := float64(a) / float64(b)
	fmt.Printf("相除: %.2f\n", div) // 2.10
	c = a % b
	fmt.Printf("求余: %d\n", c) // 1
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

2. 关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 True 否则返回 False。
!=检查两个值是否不相等,如果不相等返回 True 否则返回 False。
>检查左边值是否大于右边值,如果是返回 True 否则返回 False。
>=检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
<检查左边值是否小于右边值,如果是返回 True 否则返回 False。
<=检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

例子:

func main() {
	var a int = 21
	var b int = 10
	compare(a, b)
}

func compare(a, b int) {
	if a == b {
		fmt.Println("a 等于 b")
	}
	if a != b {
		fmt.Println("a 不等于 b")
	}
	if a > b {
		fmt.Println("a 大于 b")
	}
	if a < b {
		fmt.Println("a 小于 b")
	}
	if a >= b {
		fmt.Println("a 大于等于 b")
	}
	if a <= b {
		fmt.Println("a 小于等于 b")
	}
}
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

3. 逻辑运算符

运算符描述
&&逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
ll逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
func main() {
	var a bool = true
	var b bool = false
	if a && b {
		fmt.Println("两个都为true,才进来")
	}
	if a || b {
		fmt.Println("有一个为true,就进来")
	}
	if !a {
		fmt.Println("a为false,进来这里")
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13

4. 位运算符

位运算符对整数在内存中的二进制位进行操作。

运算符描述
&参与运算的两数各对应的二进位相与。(两位均为1才为1)
l参与运算的两数各对应的二进位相或。(两位有一个为1就为1)
^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1)
<<左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。
func main() {
	//1乘以2的n次方
	fmt.Printf("%d \n", 1<<3)
	//8除以2的n次方
	fmt.Printf("%d \n", 8>>3)
	//0000 0100  0000 1101 = 0000 0100 = 4
	fmt.Printf("&运算%d \n", 4&13)
	//0000 0100  0000 1101 = 0000 1101 = 13
	fmt.Printf("|运算%d \n", 4|13)
	//0000 0100  0000 1101 = 0000 1001 = 9
	fmt.Printf("^运算%d \n", 4^13)
}
1
2
3
4
5
6
7
8
9
10
11
12

5. 赋值运算符

运算符描述
=简单的赋值运算符,将一个表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
l=按位或后赋值
^=按位异或后赋值