下表列出了所有go語言的算術運算子。假定 a 值為 10,b 值為 20
運算子描述例項+
相加a + b 輸出結果 30-相減
a - b 輸出結果 -10*相乘
a * b 輸出結果 200/相除
b / a 輸出結果 2%求餘
b % a 輸出結果 0
++自增
a++ 輸出結果 11—自減
a— 輸出結果 9
go 語言沒有前置的 + +,- -
例如:(+ +a,- -a)這樣是錯誤,不被支援的
下表列出了所有go語言的關係運算子。假定 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
下表列出了所有go語言的邏輯運算子。假定 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
go 語言支援的位運算子如下表所示。假定 a 為60,b 為13:
運算子描述例項&
按位與運算子」&」是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。
(a & b) 結果為 12, 二進位制為 0000 1100
|按位或運算子」
「是雙目運算子。 其功能是參與運算的兩數各對應的二進位相或
(ab) 結果為 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
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
'>1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
const (
readable = 1 << iota //0001
writable //0010
exectable //0011
)func testbitclear(t *testing.t)
'>const (
readable = 1
<< iota
//0001
writable //0010
exectable //0011
)func testbitclear(t *testing.t)
輸出
=== run testbitclear
--- pass: testbitclear (0.00s)
operator_test.go:25: false true false
pass
process finished with exit code 0
'>=== run testbitclear
--- pass: testbitclear (0.00s)
operator_test.go:25: false true false
pass
process finished with exit code 0
五 go語言特性 go語言筆記
defer 呼叫乙個被 defer 的函式時在函式剛要返回之前延遲執行,當函式無論怎樣返回,某資源必須釋放時,可用這種與眾不同 但有效的處理方式。傳統的例子包括解鎖互斥或關閉檔案。package main import log func main mydefer func mydefer func ...
Go語言學習筆記 五
這是go語言學習筆記的第五篇 條件語句格式 if condition else 幾點注意的地方 func example x int int else 選擇語句格式 switch iswitch幾點注意的地方 go語言中迴圈語句只支援for關鍵字,不支援while和do while。for基本用法如...
go語言中運算子
go語言中與其他語言一樣,存在多種運算子,下表列出了go語言中的運算子型別 算數運算子 關係運算子 邏輯運算子 位運算子 賦值運算子 運算子描述 相加 相減 相乘 相除 取餘 a 10 b 20 fmt.println a b 相加 fmt.println a b 相減 fmt.println a ...