1. Go 运算符分类
Go
语言内置的运算符有:
算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符
1.1 算术运算符
下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。
在Go
语言中,自增/自减不再是一个操作符,而是一个语句。因此,在Go
语言中自增只有一种写法:
i++i--
如果写成前置自增++i
,或者赋值后自增a=i++
都将导致编译错误。
package mainfunc main() {a := 10b := 100a++// syntax error: unexpected ++ at end of statement// c := a++// syntax error: unexpected --, expecting }// --bprintln(a)println(b)}
数值变量也可以支持++
递增和--
递减语句(译注:自增和自减是语句,而不是表达式,因此x = i++
之类的表达式是错误的):
v := 1v++ // 等价方式 v = v + 1;v 变成 2v-- // 等价方式 v = v - 1;v 变成 1
1.2 关系运算符
下表列出了所有Go语言的关系运算符。假定 A 值为 10,B 值为 20。
1.3 逻辑运算符
下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。
1.4 位运算符
Go 语言支持的位运算符如下表所示。假定 A 为 60,B 为 13
1.5 赋值运算符
1.6 其它运算符
指针变量 * 和地址值 & 的区别:
指针变量保存的是一个地址值,会分配独立的内存来存储一个整型数字。当变量前面有 * 标识时,才等同于 & 的用法,否则会直接输出一个整型数字
func main() {var a int = 4var ptr *intptr = &aprintln("a的值为", a); // 4println("*ptr为", *ptr); // 4println("ptr为", ptr); // 824633794744}
参考:
菜鸟教程
Go 学习笔记(5)— 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 取地址和指针运算符