go學習筆記 五 go語言中的運算子

2022-07-02 23:21:13 字數 2597 閱讀 3360

下表列出了所有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 ...