Go 語言的各種運算符

更新於 發佈於 閱讀時間約 6 分鐘
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

留言
avatar-img
留言分享你的想法!
avatar-img
Alan的開發者天地
18會員
83內容數
golang
Alan的開發者天地的其他內容
2023/10/04
👨‍💻 簡介 最近想要透過小實作來撰寫筆記,達到做中學的效果,因此就來實作個小爬蟲順便結合前面學到的package做一個小複習。
Thumbnail
2023/10/04
👨‍💻 簡介 最近想要透過小實作來撰寫筆記,達到做中學的效果,因此就來實作個小爬蟲順便結合前面學到的package做一個小複習。
Thumbnail
2023/09/28
👨‍💻簡介 今天來介紹一個自己開發後端蠻常用的一個 package,promptui,拿來做menu真的很方便,promptui有兩個主要的輸入模式: Prompt:跳出單行使用者輸入。 Select:提供一個選項列表供使用者選擇。
Thumbnail
2023/09/28
👨‍💻簡介 今天來介紹一個自己開發後端蠻常用的一個 package,promptui,拿來做menu真的很方便,promptui有兩個主要的輸入模式: Prompt:跳出單行使用者輸入。 Select:提供一個選項列表供使用者選擇。
Thumbnail
2023/09/26
👨‍💻 簡介 在處理string時,正則表達式是一個非常有用的工具。Go語言的regexp package 可以使用正則表達式,用來執行如檢查string是否匹配某個模式、提取匹配的subString等操作。
Thumbnail
2023/09/26
👨‍💻 簡介 在處理string時,正則表達式是一個非常有用的工具。Go語言的regexp package 可以使用正則表達式,用來執行如檢查string是否匹配某個模式、提取匹配的subString等操作。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
當我們需要給某個系統或應用程序添加一種新的語言或表達式時,解譯器模式就派上了用場。這種模式提供了一種將句子或表達式分解成多個令牌的方法,然後根據這些令牌進行解釋或解析。
Thumbnail
當我們需要給某個系統或應用程序添加一種新的語言或表達式時,解譯器模式就派上了用場。這種模式提供了一種將句子或表達式分解成多個令牌的方法,然後根據這些令牌進行解釋或解析。
Thumbnail
👨‍💻簡介 本文快速介紹了 Go 語言中的各種運算符,從數學計算到邏輯判斷,包括自增自減、賦值、比較和位運算。透過實例和清晰的解釋,快速掌握如何在程式中運用這些運算符。
Thumbnail
👨‍💻簡介 本文快速介紹了 Go 語言中的各種運算符,從數學計算到邏輯判斷,包括自增自減、賦值、比較和位運算。透過實例和清晰的解釋,快速掌握如何在程式中運用這些運算符。
Thumbnail
👨‍💻簡介 Go 語言有各種資料型別,分為基本型別和複合型別。基本型別包括: 整數、浮點數、布林值、字串 複合型別包括: 陣列、片段、結構、函式、對映、通道、介面 等。 整數型別 整數型別有許多種,像是 int8、int16、int32、int64。我們可以依據實際需求選擇。
Thumbnail
👨‍💻簡介 Go 語言有各種資料型別,分為基本型別和複合型別。基本型別包括: 整數、浮點數、布林值、字串 複合型別包括: 陣列、片段、結構、函式、對映、通道、介面 等。 整數型別 整數型別有許多種,像是 int8、int16、int32、int64。我們可以依據實際需求選擇。
Thumbnail
👨‍💻簡介 在 Golang 中,你可以使用不同的方式來宣告變數和常數。宣告變數時,可以直接指定值,或者使用型別推導,更簡單地用 := 來宣告局部變數。另外,還可以一次宣告多個變數,相同型別的變數可以一起宣告,或者使用括號宣告不同型別的變數。常數則使用 const 關鍵字宣告,確保值不變
Thumbnail
👨‍💻簡介 在 Golang 中,你可以使用不同的方式來宣告變數和常數。宣告變數時,可以直接指定值,或者使用型別推導,更簡單地用 := 來宣告局部變數。另外,還可以一次宣告多個變數,相同型別的變數可以一起宣告,或者使用括號宣告不同型別的變數。常數則使用 const 關鍵字宣告,確保值不變
Thumbnail
Hi,大家好。我是茶桁。 前两节我们学习了基本的Python特性和语法,并且认识了一些基本的Python脚本。今天,我们来学习一下Python的运算符,而我们选择的版本为Python3。 什么是运算符 为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。 这里举一个简单的栗子
Thumbnail
Hi,大家好。我是茶桁。 前两节我们学习了基本的Python特性和语法,并且认识了一些基本的Python脚本。今天,我们来学习一下Python的运算符,而我们选择的版本为Python3。 什么是运算符 为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。 这里举一个简单的栗子
Thumbnail
  程式中很常會看到千奇百怪的運算式,這些運算式都隱藏著各種運算元和運算子,這些是什麼呢?讓我們來一探究竟。   運算元是指變數、常數這類(如:A、B、C、Data、123等),運算子是指運算符號(如:+、-、*、/、%、==、<、&&等這類型),這邊就要介紹C#的運算子以及怎麼使用。
Thumbnail
  程式中很常會看到千奇百怪的運算式,這些運算式都隱藏著各種運算元和運算子,這些是什麼呢?讓我們來一探究竟。   運算元是指變數、常數這類(如:A、B、C、Data、123等),運算子是指運算符號(如:+、-、*、/、%、==、<、&&等這類型),這邊就要介紹C#的運算子以及怎麼使用。
Thumbnail
本篇文章將會記錄Microsoft關於數字計算相關的知識,以及紀錄這些計算的專有名詞,補足闕漏的知識。
Thumbnail
本篇文章將會記錄Microsoft關於數字計算相關的知識,以及紀錄這些計算的專有名詞,補足闕漏的知識。
Thumbnail
統全數理功用: 1.方便計算機計算過程直觀化,透過時輪系統,一步一步地理解計算過程 2.數理語言的統一規則化 3.可能方便初學者逐步理解   算法案例   二元算法 統全數理法化   次方/平方/立方.次方根,如何計算對數?   算法案例:加法與減法   算法案例:乘法除法
Thumbnail
統全數理功用: 1.方便計算機計算過程直觀化,透過時輪系統,一步一步地理解計算過程 2.數理語言的統一規則化 3.可能方便初學者逐步理解   算法案例   二元算法 統全數理法化   次方/平方/立方.次方根,如何計算對數?   算法案例:加法與減法   算法案例:乘法除法
Thumbnail
賦值、打印、算數運算子、邏輯與關係運算子
Thumbnail
賦值、打印、算數運算子、邏輯與關係運算子
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News