4.6. 运算符优先级
运算符优先级
在Go语言中,一元运算符(一些只需要一个操作数的运算符称为一元运算符(或单目运算符)。)拥有最高的优先级,二元运算符的运算方向均是从左至右。
下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
如下图所示:
| 优先级 | 运算符 |
|---|---|
| 7 | *^ ! * |
| 6 | * / % << >>&&^ |
| 5 | **+ - |
| 4 | == != < <= >= > |
| 3 | <- |
| 2 | && |
| 1 | ** |
例子:取地址运算符: 通过指针间接修改变量的值
a := 10
//& 取地址运算符
fmt.Println(&a)
//* 取值运算符 p 指针变量
p := &a
//通过指针间接修改变量的值
*p = 123
fmt.Println(*p)
fmt.Println(a)
括号运算符 最高级
()
数组切片下标
[]
结构体.成员 包.函数 对象.方法
.
位运算 & | ^ ~ 位移运算 >> <<
位运算 & | ^ ~ 位移运算 >> <<
通信
>-
单目运算符
!(逻辑非) ++(自增) –(自减) &(取地址) *(取值)
双目运算符
*(乘) /(除)%(取余)
+(加) -(减)
(大于) <(小于) >=(大于等于) <=(小于等于) ==(相等于) !=(不等于)
&(逻辑与)
|逻辑或)
+= -= *= /= %=(赋值运算符)
培训-golang-基础课件(一年一更)
关于 LearnKu
推荐文章: