淺談 Golang 變數與常數:宣告、初始化與使用

更新於 發佈於 閱讀時間約 4 分鐘
raw-image

👨‍💻簡介

在 Golang 中,你可以使用不同的方式來宣告變數和常數。宣告變數時,可以直接指定值,或者使用型別推導,更簡單地用 := 來宣告局部變數。另外,還可以一次宣告多個變數,相同型別的變數可以一起宣告,或者使用括號宣告不同型別的變數。常數則使用 const 關鍵字宣告,確保值不變,有助於提高程式碼的可讀性和穩定性。

變數的聲明

在 Golang 裡,變數是程式中保存資料的容器。變數名稱由字母、數字、底線組成,但首個字符不能是數字。Golang 的關鍵字和保留字都不能用作變數名稱。

變數的宣告和初始化方式多種多樣,在使用變數之前,需要先聲明變數。在同一範圍內,不允許重複聲明相同的變數。而且,一旦聲明變數,就必須在之後的程式碼中使用它。

如果變數在聲明後沒有進行初始化,則打印出來的值將是空的。

如何定義變數

單變數宣告

  1. 普通聲明(variable declaration) 使用 var 關鍵字進行普通聲明,然後指定變數名稱和類型,再賦予初始值。
var name string
name = "Alan"

2. 帶初始化的聲明(direct define): 可以直接指定變數的類型和初始值。

var age int = 25

也可以省略類型,讓變數類型根據初始值自動推斷。

var age = 25

3. 簡短變數聲明(short declaration) 在函式內部,可以使用簡化的 := 語法同時宣告並初始化變數。

注意:簡短變數聲明只能用於局部變數,不能用於全局變數的聲明。

foo := "hello"
bar := 100

多變數宣告

  1. 普通聲明 您可以同時宣告多個相同類型的變數。
var a, b int
a = 10
b = 20

2. 帶初始化的聲明(direct define): 可以直接指定多個變數的類型和初始值。

var x, y int = 5, 8

也可以省略類型,讓變數類型根據初始值自動推斷。

var x, y = 5, 8

3. 使用簡短變數聲明: 同樣也可以使用簡化的 := 語法同時宣告多個變數。

x, y := 5, 8

4. 使用括號的平行賦值 使用括號 () 可以同時宣告多個不同類型的變數並賦予初始值。

var(
foo string
bar int
)

var (
foo = 5
bar = "abc"
)
var (
name string = "Alice"
age int = 25
country string = "USA"
)

匿名變數

使用 _ 符號表示匿名變數,適用於不需要使用的變數。

_, result := calculateSomething()

常數的定義與使用

常數是不會變動的值,可用於定義程式運行期間不會改變的數值。使用 const 關鍵字宣告常數,確保值不變,增強程式碼可讀性和穩定性。

常數的聲明與變數的聲明非常相似,只需將 var 改成 const,並在聲明時必須賦值。

// 定義常數 pi,可以在程式的任何地方使用
const pi = 3.14

// 同時宣告兩個常數
const(
A = "A"
B = "B"
)
// 同時宣告多個常數,省略值則與上一行相同
const(
A = "A"
B
C
)

使用 iota 的 Const 常數

iota 是 Golang 的常數計數器,僅能在常數表達式中使用。iota 在每次出現 const 關鍵字時,都會重置為 0(位於 const 區塊的第一行之前)。每新增一行常數聲明,iota 計數一次。

const a = iota // a = 0
const (
b = iota // b = 0
c // c = 1
d // d = 2
)

// 可在一開始即決定初始值
const (
b = iota+1 // b = 1
c // c = 2
d // d = 3
)
// 使用 _ 跳過某些值
const (
b = iota // b = 0
_
d // d = 2
)

📚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
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
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
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
Thumbnail
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
Thumbnail
說明 重點 △定義變數 △文字的定義 △文字與數字的差別 △整數與浮點數 △signed(有號)與unsigned(無號)的區別 △e是什麼符號? 分類 △字元 △字串 △短整數 △整數 △長整數 △超長整數 △單精度浮點數 △雙精度浮點數 △長雙精度浮點數 應用 宣告與輸出 運算符 結論
Thumbnail
說明 重點 △定義變數 △文字的定義 △文字與數字的差別 △整數與浮點數 △signed(有號)與unsigned(無號)的區別 △e是什麼符號? 分類 △字元 △字串 △短整數 △整數 △長整數 △超長整數 △單精度浮點數 △雙精度浮點數 △長雙精度浮點數 應用 宣告與輸出 運算符 結論
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News