运算符
教程地址:点击去往视频教程
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
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
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
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
2
3
4
5
6
7
8
9
10
11
12
5. 赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
| += | 相加后再赋值 |
| -= | 相减后再赋值 |
| *= | 相乘后再赋值 |
| /= | 相除后再赋值 |
| %= | 求余后再赋值 |
| <<= | 左移后赋值 |
| >>= | 右移后赋值 |
| &= | 按位与后赋值 |
| l= | 按位或后赋值 |
| ^= | 按位异或后赋值 |
