Go 语言运算符

发布于:2022-12-21 ⋅ 阅读:(466) ⋅ 点赞:(0)

运算符用于在程序运行时执行数学或逻辑运算。

Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

算术运算符

运算符 描述
+ 相加
- 相减
* 相乘
/ 相除
% 求余
++ 自增
--

自减


关系运算符

关系运算符返回值是布尔类型,如果逻辑正确,比如2大于1,返回true。2>5,逻辑不成立,返回false。

运算符 描述
== 检查两个值是否相等
!= 检查两个值是否不相等
> 检查左边值是否大于右边值
< 检查左边值是否小于右边值
>= 检查左边值是否大于等于右边值
<= 检查左边值是否小于等于右边值

逻辑运算符

逻辑运算符是在运算符两边分别有一个表达式(!除外),表达式的值要为布尔类型的true或false。

 

运算符 描述
&& 逻辑 AND 运算符。 如果两边的操作数都是 true,则条件 true,否则为 false。
|| 逻辑 OR 运算符。 如果两边的操作数有一个 true,则条件 true,否则为 false。
! 逻辑 NOT 运算符。 如果条件为 true,则逻辑 NOT 条件 false,否则为 true。

 举例

package main

import "fmt"

func main() {
   var a bool = true
   var b bool = false
   if ( a && b ) {
      fmt.Printf("第一行 - 条件为 true\n" )
   }
   if ( a || b ) {
      fmt.Printf("第二行 - 条件为 true\n" )
   }
   /* 修改 a 和 b 的值 */
   a = false
   b = true
   if ( a && b ) {
      fmt.Printf("第三行 - 条件为 true\n" )
   } else {
      fmt.Printf("第三行 - 条件为 false\n" )
   }
   if ( !(a && b) ) {
      fmt.Printf("第四行 - 条件为 true\n" )
   }
}

结果:

第二行 - 条件为 true

第三行 - 条件为 false

第四行 - 条件为 true


位运算符

位运算符对整数在内存中的二进制位进行操作。

运算符 描述
& 参与运算的两数各对应的二进位相与
| 参与运算的两数各对应的二进位相或
^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1
<< 左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
>> 右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

 


运算符优先级

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

 

本文含有隐藏内容,请 开通VIP 后查看