一 位运算符
二 其它运算符说明
特别说明:在 golang 中没有三元运算,如果要使用三元运算符合,可使用 if else来实现。
1 实战
package main
import (
"fmt"
)
func main() {
// 演示 & 和 *的使用
a := 100
fmt.Println("a 的地址=", &a)
var ptr *int = &a
fmt.Println("ptr 指向的值是=", *ptr)
var n int
var i int = 10
var j int = 12
// 传统的三元运算
// n = i > j ? i : j
if i > j {
n = i
} else {
n = j
}
fmt.Println("n=", n) // 12
}
2 测试
a 的地址= 0xc0420080a8
ptr 指向的值是= 100
n= 12
三 案例实战
1 求两个数的最大值
2 求三个数的最大值
代码
package main
import (
"fmt"
)
func main() {
// 求两个数的最大值
var n1 int = 10
var n2 int = 40
var max int
if n1 > n2 {
max = n1
} else {
max = n2
}
fmt.Println("max=", max)
// 求出三个数的最大值思路:先求出两个数的最大值, 然后让这个最大值和第三数比较,再取出最大值
var n3 = 45
if n3 > max {
max = n3
}
fmt.Println("三个数中最大值是=", max)
}
测试
max= 40
三个数中最大值是= 45
四 运算符的优先级
1 运算符的优先级一览表
2 对上图的说明
-
运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如上表,上一行运算符总优先于下一行。
-
只有单目运算符、赋值运算符是从右向左运算的。
3 梳理一下优先级
1:括号,++, --
2: 单目运算
3:算术运算符
4:移位运算
5:关系运算符
6:位运算符
7:逻辑运算符
8:赋值运算符
9:逗号