Go 語(yǔ)言的運(yùn)算符
算術(shù)運(yùn)算符
-
+:相加; -
-:相減; -
*:相乘; -
/:相除; -
%:求余; -
++:自增; -
--:自減;
其中,++ 與 -- 不能用于賦值表達(dá)式, 如: count2 := count++;并且在 Go 語(yǔ)言中,不存在如:++count 表達(dá)式。
關(guān)系運(yùn)算符
-
==:檢查兩個(gè)值是否相等,如果相等返回true,否則返回false; -
!=:檢查兩個(gè)值是否不相等,如果不相等返回true,否則返回false; -
>:檢查左邊值是否大于右邊值,如果是返回true,否則返回false; -
<:檢查左邊值是否小于右邊值,如果是返回true,否則返回false; -
>=:檢查左邊值是否大于等于右邊值,如果是返回true,否則返回false; -
<=:檢查左邊值是否小于等于右邊值,如果是返回true,否則返回false;
邏輯運(yùn)算符
-
&&:邏輯AND運(yùn)算符。如果兩邊的操作數(shù)都是true,則條件為true,否則為false; -
||:邏輯OR運(yùn)算符。如果兩邊的操作數(shù)有一個(gè)true,則條件為true,否則為false; -
!:邏輯NOT運(yùn)算符。如果條件為true,則邏輯NOT添加為true,否則為false;
位運(yùn)算符
位運(yùn)算符是對(duì)整數(shù)在內(nèi)存中的二進(jìn)制進(jìn)行操作。
-
&:按位與運(yùn)算符。其功能是參與運(yùn)算的兩個(gè)數(shù)的二進(jìn)制按位對(duì)齊,當(dāng)對(duì)應(yīng)位都為 1 時(shí),才返回 1;
fmt.Println(3 & 4) // 0
// 計(jì)算過(guò)程
// 0011 => 3 的二進(jìn)制
// 0100 => 4 的二進(jìn)制
// &
// ---------------------------
// 0000 => 0 的二進(jìn)制
-
|:按位或運(yùn)算符。其功能是參與運(yùn)算的兩個(gè)數(shù)的二進(jìn)制按位對(duì)齊,當(dāng)對(duì)應(yīng)位中只要有一位是 1,就返回 1;
fmt.Println(3 | 4) // 7
// 計(jì)算過(guò)程
// 0011 => 3 的二進(jìn)制
// 0100 => 4 的二進(jìn)制
// &
// ---------------------------
// 0111 => 7 的二進(jìn)制
-
^:按位異或運(yùn)算符。其是參與運(yùn)算的兩個(gè)數(shù)的二進(jìn)制按位對(duì)齊,當(dāng)對(duì)應(yīng)位有一位是 1,就返回 1;如果對(duì)應(yīng)兩位都是 1 或 0,就返回 0;
fmt.Println(25 ^ 3) // 26
// 計(jì)算過(guò)程
// 0001 1001 => 25 的二進(jìn)制
// 0000 0011 => 3 的二進(jìn)制
// ^
// ---------------------------
// 0001 1010 => 26 的二進(jìn)制
-
<<:左移運(yùn)算符。其功能是將數(shù)值的二進(jìn)制所有位向左移動(dòng)指定的位數(shù);
fmt.Println(3 << 3) // 24
// 計(jì)算過(guò)程
// 0000 0011 => 3 的二進(jìn)制
// 3
// <<
// ---------------------------
// 0001 1000 => 24 的二進(jìn)制
-
>>:右移運(yùn)算符。其功能是將數(shù)值的二進(jìn)制所有位向右移動(dòng)指定的位數(shù);
fmt.Println(3 >> 3) // 0
// 計(jì)算過(guò)程
// 0000 0011 => 3 的二進(jìn)制
// 3
// >>
// ---------------------------
// 0000 0000 => 0 的二進(jìn)制
賦值運(yùn)算符
-
=:簡(jiǎn)單的賦值運(yùn)算符,將一個(gè)表達(dá)式的值賦給一個(gè)左值; -
+=:相加后再賦值; -
-=:相減后再賦值; -
*=:相乘后再賦值; -
/=:相除后再賦值; -
%=:取余后再賦值; -
&=:按位與后賦值; -
|=:按位或后賦值; -
^=:按位異或后賦值; -
<<=:左位移后賦值; -
>>=:右位移后賦值;