购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.7 运算符

各个编程语言中的运算符作用基本相同,即在程序运行时执行数学或逻辑运算。Go语言中包含算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符等6种运算符。下面分别讲解这6种运算符。

3.7.1 算术运算符

表3.4列出了Go语言中所有算术运算符及其说明,并且通过示例及其运算结果展示各个算术运算符的使用方法。其中,变量a、b和c的类型是int,变量a的初始值为7,变量b的初始值为11。

表3.4  Go语言中的算术运算符及其说明

3.7.2 关系运算符

表3.5列出了Go语言中的关系运算符及其说明,并且通过示例及其运算结果展示各个关系运算符的使用方法。其中,变量a和b的类型是int,变量a的初始值为7,变量b的初始值为11。

表3.5  Go语言中的关系运算符及其说明

3.7.3 逻辑运算符

表3.6列出了Go语言中的逻辑运算符及其说明,并且通过示例及其运算结果展示各个逻辑运算符的使用方法。其中,有两个操作数(布尔类型的变量或返回布尔类型的值的表达式)a和b。

表3.6  Go语言中的所有逻辑运算符及其说明

3.7.4 位运算符

表3.7列出了Go语言的位运算符及其说明,这些位运算符都是双目运算符。

表3.7  Go语言中的位运算符及其说明

位运算符“&”“|”和“^”能够对整数在内存中的二进制位进行操作,操作的结果如表3.8所示。

表3.8 位运算符对整数在内存中的二进制位进行操作及其结果

“&”运算符的使用方法是先将两个操作数转换成二进制数,再将两个二进制操作数的最低位对齐(右对齐),然后让两个二进制数的每一位都做按位与运算。若同一位的两个值都为1,则对应位的结果为1,否则对应位的结果为0。例如,12和8经按位与运算后的结果是8。运算过程如下。

“|”运算符的使用方法是先将两个操作数转换成二进制数,再将两个二进制操作数的最低位对齐(右对齐),然后让两个二进制数的每一位都做按位或运算。若同一位的两个值都为0,则对应位的结果为0,否则对应位的结果为1。例如,4和8经按位或运算后的结果是12。运算过程如下。

“^”运算符使用方法是先将两个操作数转换成二进制数,再将两个二进制操作数的最低位对齐(右对齐),然后让两个二进制数的每一位都做按位异或运算。若同一位的两个值相同,则对应位的结果为0;若同一位的两个值不同,则对应位的结果就为1。例如,31和22经按位异或运算后的结果是9。运算过程如下。

位运算符“<<”和“>>”能够对变量进行左移或右移运算,代码如下。

运行结果如下。

    24 右移2位后的结果是: 6
    -16 左移3位后的结果是: -128

3.7.5 复合赋值运算符

所谓复合赋值运算符,就是把赋值运算符与其他运算符合并成一个运算符,进而同时实现两种运算符的效果。Go语言中的复合赋值运算符及其说明如表3.9所示。

表3.9  Go语言中的复合赋值运算符及其说明

【例3.6】 使用复合赋值运算符对两个整数进行运算 (实例位置:资源包 \TM\sl\3\6

使用“短变量声明”的语法格式分别声明并初始化int类型的变量a和b;其中,变量a的初始值为7,变量b的初始值为11。分别使用表3.9中的复合赋值运算符对这两个整数进行运算。打印运算后的结果。代码如下。

运行结果如下。

3.7.6 运算符优先级

运算符的优先级决定表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是:自增和自减运算、算术运算、比较运算、逻辑运算及赋值运算。

如果两个运算符具有相同的优先级,那么左边的表达式比右边的表达式先被处理。表3.10显示Go语言中各个运算符的优先级。

表3.10  Go语言中各个运算符的优先级 +nWNwsONTPwKlcD5ugVuCtuq4tGA3hSpL47gLVRewvVc9IJMSZAtCRY/ewkGWZOG

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开