go學習筆記-運算子
阿新 • • 發佈:2018-11-09
運算子
運算子
內建運算子
算術運算子
關係運算符
邏輯運算子
位運算子
賦值運算子
其他運算子
算術運算子
假定 A 值為 10,B 值為 20。
運算子 描述 例項
+ 相加 A + B 輸出結果 30
- 相減 A - B 輸出結果 -10
* 相乘 A * B 輸出結果 200
/ 相除 B / A 輸出結果 2
% 求餘 B % A 輸出結果 0
++ 自增 A++ 輸出結果 11
-- 自減 A-- 輸出結果 9
關係運算符
假定 A 值為 10,B 值為 20。
運算子 描述 例項 == 檢查兩個值是否相等,如果相等返回 True 否則返回 False。 (A == B) 為 False != 檢查兩個值是否不相等,如果不相等返回 True 否則返回 False。 (A != B) 為 True > 檢查左邊值是否大於右邊值,如果是返回 True 否則返回 False。 (A > B) 為 False < 檢查左邊值是否小於右邊值,如果是返回 True 否則返回 False。 (A < B) 為 True >= 檢查左邊值是否大於等於右邊值,如果是返回 True 否則返回 False。 (A >= B) 為 False <= 檢查左邊值是否小於等於右邊值,如果是返回 True 否則返回 False。 (A <= B) 為 True
邏輯運算子
假定 A 值為 True,B 值為 False。
運算子 描述 例項
&& 邏輯 AND 運算子。 如果兩邊的運算元都是 True,則條件 True,否則為 False。 (A && B) 為 False
|| 邏輯 OR 運算子。 如果兩邊的運算元有一個 True,則條件 True,否則為 False。 (A || B) 為 True
! 邏輯 NOT 運算子。 如果條件為 True,則邏輯 NOT 條件 False,否則為 True。 !(A && B) 為 True
位運算子
假定 A 為60,B 為13
運算子 描述 例項 & 按位與運算子"&"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。 (A & B) 結果為 12, 二進位制為 0000 1100 | 按位或運算子"|"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相或 (A | B) 結果為 61, 二進位制為 0011 1101 ^ 按位異或運算子"^"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。 (A ^ B) 結果為 49, 二進位制為 0011 0001 << 左移運算子"<<"是雙目運算子。左移n位就是乘以2的n次方。 其功能把"<<"左邊的運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 A << 2 結果為 240 ,二進位制為 1111 0000 >> 右移運算子">>"是雙目運算子。右移n位就是除以2的n次方。 其功能是把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數。 A >> 2 結果為 15 ,二進位制為 0000 1111
賦值運算子
運算子 描述 例項
= 簡單的賦值運算子,將一個表示式的值賦給一個左值 C = A + B 將 A + B 表示式結果賦值給 C
+= 相加後再賦值 C += A 等於 C = C + A
-= 相減後再賦值 C -= A 等於 C = C - A
*= 相乘後再賦值 C *= A 等於 C = C * A
/= 相除後再賦值 C /= A 等於 C = C / A
%= 求餘後再賦值 C %= A 等於 C = C % A
<<= 左移後賦值 C <<= 2 等於 C = C << 2
>>= 右移後賦值 C >>= 2 等於 C = C >> 2
&= 按位與後賦值 C &= 2 等於 C = C & 2
^= 按位異或後賦值 C ^= 2 等於 C = C ^ 2
|= 按位或後賦值 C |= 2 等於 C = C | 2
其他運算子
運算子 描述 例項
& 返回變數儲存地址 &a; 將給出變數的實際地址。
* 指標變數。 *a; 是一個指標變數
運算子優先順序
有些運算子擁有較高的優先順序,二元運算子的運算方向均是從左至右。下表列出了所有運算子以及它們的優先順序,由上至下代表優先順序由高到低:
優先順序 運算子
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||
當然,你可以通過使用括號來臨時提升某個表示式的整體運算優先順序。