4.6. 运算符优先级

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

运算符优先级

在Go语言中,一元运算符(一些只需要一个操作数的运算符称为一元运算符(或单目运算符)。)拥有最高的优先级,二元运算符的运算方向均是从左至右。

下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

如下图所示:

优先级 运算符
7 *^ ! *
6 * / % << >>&&^
5 **+ -
4 == != < <= >= >
3 <-
2 &&
1 **

例子:取地址运算符: 通过指针间接修改变量的值

    a := 10

    //& 取地址运算符
    fmt.Println(&a)

    //* 取值运算符 p  指针变量
    p := &a

    //通过指针间接修改变量的值
    *p = 123
    fmt.Println(*p)
    fmt.Println(a)

括号运算符 最高级

()

数组切片下标

[]

结构体.成员 包.函数 对象.方法

.

位运算 & | ^ ~ 位移运算 >> <<

位运算 & | ^ ~ 位移运算 >> <<

通信

>-

单目运算符

!(逻辑非) ++(自增) –(自减) &(取地址) *(取值)

双目运算符

*(乘) /(除)%(取余)

+(加) -(减)

(大于) <(小于) >=(大于等于) <=(小于等于) ==(相等于) !=(不等于)

&(逻辑与)

|逻辑或)

+= -= *= /= %=(赋值运算符)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~