【Go】13、golang运算符
1、运算符
- Go语言内置的运算符有:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
2、算术运算符
| 运算符 | 描述 |
| + | 相加 |
| - | 相减 |
| * | 相乘 |
| / | 相除 |
| % | 求余 |
- ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符
package main
import "fmt"
func test1() {
// 算术运算符
a := 100
b := 20
c := a + b
fmt.Printf("c: %v\n", c)
c = a - b
fmt.Printf("c: %v\n", c)
c = a / b
fmt.Printf("c: %v\n", c)
c = a * b
fmt.Printf("c: %v\n", c)
c = a % b
fmt.Printf("c: %v\n", c)
a++
fmt.Printf("a: %v\n", a)
a--
fmt.Printf("a: %v\n", a)
}
func main() {
test1()
}
# 输出结果:
c: 120
c: 80
c: 5
c: 2000
c: 0
a: 101
a: 1003、关系运算符
| 运算符 | 描述 |
| == | 检查两个值是否相等,如果相等返回 True 否则返回 False。 |
| != | 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 |
| > | 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 |
| >= | 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 |
| < | 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 |
| <= | 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 |
func test2() {
// 关系运算符
a := 10
b := 5
c := a == b
fmt.Printf("c: %v\n", c)
c = a > b
fmt.Printf("c: %v\n", c)
c = a < b
fmt.Printf("c: %v\n", c)
c = a != b
fmt.Printf("c: %v\n", c)
c = a >= b
fmt.Printf("c: %v\n", c)
c = a <= b
fmt.Printf("c: %v\n", c)
}
func main() {
test2()
}
# 输出结果
c: false
c: true
c: false
c: true
c: true
c: false4、逻辑运算符
| 运算符 | 描述 |
| && | 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
| || | 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
| ! | 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
func test3() {
// 逻辑运算符
a := true
b := false
c := a && b
fmt.Printf("c: %v\n", c)
c = a || b
fmt.Printf("c: %v\n", c)
fmt.Printf("!a: %v\n", !a)
}
func main() {
test3()
}
# 输出结果:
c: false
c: true
!a: false5、位运算符
运算符 | 描述 |
| & | 参与运算的两数各对应的二进位相与。 (两位均为1才为1) |
| | | 参与运算的两数各对应的二进位相或。 (两位有一个为1就为1) |
| ^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1) |
| << | 左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
| >> | 右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。 |
func test4() {
// 位运算
a := 4 // 二进制为100
fmt.Printf("a: %b\n", a)
b := 8 // 二进制为1000
fmt.Printf("b: %b\n", b)
c := a & b
fmt.Printf("c: %b\n", c)
c = a | b
fmt.Printf("c: %b\n", c)
c = a ^ b
fmt.Printf("c: %b\n", c)
c = a << 2
fmt.Printf("c: %b\n", c)
c = a >> 2
fmt.Printf("c: %b\n", c)
}
func main() {
test4()
}
# 输出结果:
a: 100
b: 1000
c: 0
c: 1100
c: 1100
c: 10000
c: 16、赋值运算符
| 运算符 | 描述 |
| = | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
| += | 相加后再赋值 |
| -= | 相减后再赋值 |
| *= | 相乘后再赋值 |
| /= | 相除后再赋值 |
| %= | 求余后再赋值 |
| <<= | 左移后赋值 |
| >>= | 右移后赋值 |
| &= | 按位与后赋值 |
| |= | 按位或后赋值 |
| ^= | 按位异或后赋值 |
func test5() {
var a int = 100
a += 100
fmt.Printf("a: %v\n", a)
a -= 100
fmt.Printf("a: %v\n", a)
a *= 2
fmt.Printf("a: %v\n", a)
a /= 2
fmt.Printf("a: %v\n", a)
a %= 2
fmt.Printf("a: %v\n", a)
a <<= 2
fmt.Printf("a: %v\n", a)
a >>= 2
fmt.Printf("a: %v\n", a)
a |= 2
fmt.Printf("a: %v\n", a)
a ^= 2
fmt.Printf("a: %v\n", a)
}
func main() {
test5()
}
# 输出结果
a: 200
a: 100
a: 200
a: 100
a: 0
a: 0
a: 0
a: 2
a: 0本文来自博客园,作者:郭祺迦,转载请注明原文链接:https://www.cnblogs.com/guojie-guojie/p/16374905.html

浙公网安备 33010602011771号