Go語言基礎之運算子
阿新 • • 發佈:2021-10-15
Go語言基礎之運算子
運算子用於在程式執行時執行數學或邏輯運算。
一、運算子
Go 語言內建的運算子有:
- 算術運算子
- 關係運算符
- 邏輯運算子
- 位運算子
- 賦值運算子
二、算數運算子
運算子 | 描述 |
---|---|
+ | 相加 |
- | 相減 |
* | 相乘 |
/ | 相除 |
% | 求餘 |
注意: ++
(自增)和--
(自減)在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; 是一個指標變數 |