2023-08-22|閱讀時間 ‧ 約 6 分鐘

Go 語言的各種運算符

raw-image


👨‍💻簡介

本文快速介紹了 Go 語言中的各種運算符,從數學計算到邏輯判斷,包括自增自減、賦值、比較和位運算。透過實例和清晰的解釋,快速掌握如何在程式中運用這些運算符。

算術運算符

在 Go 語言中,我們可以使用各種算術運算符來執行基本的數學運算。以下是一些常用的算術運算符:

  • +:加法運算,用來將兩個數相加。
  • -:減法運算,用來從一個數中減去另一個數。
  • *:乘法運算,用來將兩個數相乘。
  • /:除法運算,用來將一個數除以另一個數。
  • %:求餘運算,用來得到兩個數相除的餘數。

例如:

a := 5
b := 3
c := a + b // c 的值是 8
d := a * b // d 的值是 15

此外,我們還有自增和自減運算符,它們用來讓變數的值增加或減少 1:

  • ++:自增運算符,將變數的值增加 1。
  • --:自減運算符,將變數的值減少 1。

舉個例子:

x := 10
x++ // x 的值變成了 11
y := 5
y-- // y 的值變成了 4

賦值運算符

賦值運算符用來將一個值賦給一個變數。我們常見的賦值運算符有:

  • =:將右邊的值賦給左邊的變數。
  • +=:先將右邊的值加到左邊的變數上,然後再將結果賦給左邊的變數。
  • -=:先從左邊的變數中減去右邊的值,然後再將結果賦給左邊的變數。
  • *=:先將左邊的變數乘以右邊的值,然後再將結果賦給左邊的變數。
  • /=:先將左邊的變數除以右邊的值,然後再將結果賦給左邊的變數。
  • %=:先將左邊的變數除以右邊的值取餘數,然後再將結果賦給左邊的變數。

簡單範例如下:

a := 10
b := 5

a = 20 // a 的值變成了 20
a += b // 等同於 a = a + b,所以 a 的值變成了 25
a -= b // 等同於 a = a - b,所以 a 的值變成了 20
a *= b // 等同於 a = a * b,所以 a 的值變成了 100
a /= b // 等同於 a = a / b,所以 a 的值變成了 20
a %= b // 等同於 a = a % b,所以 a 的值變成了 0

比較運算符

比較運算符用來比較兩個值的大小或者是否相等。我們常用的比較運算符有:

  • ==:判斷兩個值是否相等。
  • !=:判斷兩個值是否不相等。
  • <:判斷左邊的值是否小於右邊的值。
  • >:判斷左邊的值是否大於右邊的值。
  • <=:判斷左邊的值是否小於等於右邊的值。
  • >=:判斷左邊的值是否大於等於右邊的值。

以下為使用範例:

x := 10
y := 5

isEqual := x == y // false,因為 x 不等於 y
isNotEqual := x != y // true,因為 x 不等於 y
isLess := x < y // false,因為 x 不小於 y
isGreater := x > y // true,因為 x 大於 y
isLessOrEqual := x <= y // false,因為 x 不小於等於 y
isGreaterOrEqual := x >= y // true,因為 x 大於等於 y

邏輯運算符

邏輯運算符用來執行邏輯操作。我們常用的邏輯運算符有:

  • &&:邏輯與,用來判斷多個條件是否同時滿足。
  • ||:邏輯或,用來判斷多個條件是否至少有一個滿足。
  • !:邏輯非,用來取反一個條件的結果。

以下為使用範例:

p := true
q := false

andResult := p && q // false,因為 p 和 q 不都為 true
orResult := p || q // true,因為 p 或 q 至少有一個為 true
notResult := !p // false,因為 p 為 true,取反後為 false

位運算符

位運算符用來在二進制位級別執行操作。我們常用的位運算符有:

  • &:按位與,對每一位進行與操作。
  • |:按位或,對每一位進行或操作。
  • ^:按位異或,對每一位進行異或操作。
  • <<:左移,將二進制位向左移動指定的位數。
  • >>:右移,將二進制位向右移動指定的位數。

以下為使用範例:

a := 5 // 二進制表示:0101
b := 3 // 二進制表示:0011

andResult := a & b // 二進制表示:0001,十進制表示:1
orResult := a | b // 二進制表示:0111,十進制表示:7
xorResult := a ^ b // 二進制表示:0110,十進制表示:6
leftShiftResult := a << 1 // 二進制表示:1010,十進制表示:10
rightShiftResult := a >> 1 // 二進制表示:0010,十進制表示:2

其他運算符

其他運算符用來執行一些特定的操作。我們常用的其他運算符有:

  • &:取地址,用來獲取變數的內存地址。
  • *:指針,用來聲明指針變數。
  • <-:通道操作符,用來發送和接收通道消息。

以下為使用範例:

var num int = 42
ptr := &num // ptr 現在包含 num 的內存地址

var value int = *ptr // value 現在包含 ptr 所指向的內存中的值
ch := make(chan int) // 創建一個整數通道
ch <- 10 // 將值 10 發送到通道 ch 中
receivedValue := <-ch // 從通道 ch 接收值並存儲在 receivedValue 中

注意事項

  • 在進行數學運算時,一定要注意數據類型是否匹配,避免因為類型轉換引起的問題。
  • 在使用邏輯運算符時,要確保清楚地理解各個條件的組合關係。

📚Reference

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.