1. 程式人生 > 其它 >Go語言基礎之運算子

Go語言基礎之運算子

Go語言基礎之運算子

運算子用於在程式執行時執行數學或邏輯運算。

一、運算子

Go 語言內建的運算子有:

  1. 算術運算子
  2. 關係運算符
  3. 邏輯運算子
  4. 位運算子
  5. 賦值運算子

二、算數運算子

運算子 描述
+ 相加
- 相減
* 相乘
/ 相除
% 求餘

注意: ++(自增)和--(自減)在Go語言中是單獨的語句,並不是運算子。

三、關係運算符

運算子 描述
== 檢查兩個值是否相等,如果相等返回 True 否則返回 False。
!= 檢查兩個值是否不相等,如果不相等返回 True 否則返回 False。
> 檢查左邊值是否大於右邊值,如果是返回 True 否則返回 False。
>= 檢查左邊值是否大於等於右邊值,如果是返回 True 否則返回 False。
< 檢查左邊值是否小於右邊值,如果是返回 True 否則返回 False。
<= 檢查左邊值是否小於等於右邊值,如果是返回 True 否則返回 False。

四、邏輯運算子

運算子 描述
&& 邏輯 AND 運算子。 如果兩邊的運算元都是 True,則為 True,否則為 False。
|| 邏輯 OR 運算子。 如果兩邊的運算元有一個 True,則為 True,否則為 False。
! 邏輯 NOT 運算子。 如果條件為 True,則為 False,否則為 True。

五、位運算子

位運算子對整數在記憶體中的二進位制位進行操作。

運算子 描述
& 參與運算的兩數各對應的二進位相與。 (兩位均為1才為1)
| 參與運算的兩數各對應的二進位相或。 (兩位有一個為1就為1)
^ 參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。 (兩位不一樣則為1)
<< 左移n位就是乘以2的n次方。 “a<<b”是把a的各二進位全部左移b位,高位丟棄,低位補0。
>> 右移n位就是除以2的n次方。 “a>>b”是把a的各二進位全部右移b位。

六、賦值運算子

運算子 描述
= 簡單的賦值運算子,將一個表示式的值賦給一個左值
+= 相加後再賦值
-= 相減後再賦值
*= 相乘後再賦值
/= 相除後再賦值
%= 求餘後再賦值
<<= 左移後賦值
>>= 右移後賦值
&= 按位與後賦值
|= 按位或後賦值
^= 按位異或後賦值

七、運算髮優先順序

Go語言中所有的二元運算子共有五種優先順序,如下所示,它們按照優先順序遞減的順序的排列:

優先順序 運算子
5 * / % << >> & &^
4 + - | ^
3 == != < <= > >=
2 &&
1 ||

在同一個優先順序,使用左優先結合規則,但是使用括號可以提升優先順序,所以建議使用括號明確優先順序。

八、元運算子

一元的加法和減法運算子 描述
+ 一元加法 (無效果)
- 負數

對於整數、浮點數和複數,+x就是x,-x則是x 的負數。例如+(-8)得-8

& 返回變數儲存地址 &a; 將給出變數的實際地址。
* 指標變數。 *a; 是一個指標變數
在當下的階段,必將由程式設計師來主導,甚至比以往更甚。