简介
运算符用于在程序运行时执行数学或逻辑运算。
Go 语言内置的运算符有:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
算术运算符
注意:/有浮点型参与运算时会保留小数,10.0/4 结果为2.5;自增和自减必须独立使用,不能赋值给其他变量。
代码
A,B := 10,20 fmt.Println("A+B:",A+B) fmt.Println("A-B:",A-B) fmt.Println("A*B:",A*B) fmt.Println("B/A:",B/A) fmt.Println("B%A:",B%A) A++ fmt.Println("A++:",A) A-- fmt.Println("A--:",A) fmt.Println("float64(A)/10:",float64(A)/4)
关系/比较运算符
关系/比较运算符
代码
fmt.Println("A==B:",A==B) fmt.Println("A!=B:",A!=B) fmt.Println("A>B:",A>B) fmt.Println("A<B:",A<B) fmt.Println("A>=B:",A>=B) fmt.Println("A<=B:",A<=B)
逻辑运算符
逻辑运算符
注意:对于&&运算符,左边的为false,右边的就不运行。对于||运算符,左边的为true,右边的就不运行。这是一种短路现象
代码
C := true D := false fmt.Println("C&&D:",C&&D) fmt.Println("C||D:",C||D) fmt.Println("!(C&&D):",!(C&&D))
位运算符
代码
A,B = 60,13 fmt.Println("A&B:",A&B) fmt.Println("A|B:",A|B) fmt.Println("A^B:",A^B) fmt.Println("A<<2:",A<<2) fmt.Println("A>>2:",A>>2)
赋值运算符
赋值运算符
代码
var E int E = A+B fmt.Println("E:",E) E += A fmt.Println("E += A:",E) E -= A fmt.Println("E -= A:",E) E *= A fmt.Println("E *= A:",E) E /= A fmt.Println("E /= A:",E) E %= A fmt.Println("E %= A:",E) E <<= 2 fmt.Println("E <<= 2:",E) E >>= 2 fmt.Println("E >>= 2:",E) E &= 2 fmt.Println("E &= 2:",E) E ^= 2 fmt.Println("E ^= 2:",E) E |= 2 fmt.Println("E |= 2:",E)
其他运算符
其他运算符
代码
ptr := &E fmt.Println("&E *(&E):",ptr,*ptr)
运算符优先级
运算符优先级
博主喜欢加括号,懒得背...
思考题
以下程序会输出什么?
package main import "fmt" func output() int { fmt.Println("你好") return 1 } func main() { a := 3 if a < 2 && output() == 2{ fmt.Println(a) } if a < 2 || output() == 1{ fmt.Println(a) } }
更多Go相关内容:Go-Golang学习总结笔记
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。