👨‍💻簡介

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

變數的聲明

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

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

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

如何定義變數

單變數宣告

  1. 普通聲明(variable declaration) 使用 var 關鍵字進行普通聲明,然後指定變數名稱和類型,再賦予初始值。
var name string
name = "Alan"
  1. 帶初始化的聲明(direct define): 可以直接指定變數的類型和初始值。
var age int = 25

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

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

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

foo := "hello"
bar := 100

多變數宣告

  1. 普通聲明 您可以同時宣告多個相同類型的變數。
var a, b int
a = 10
b = 20
  1. 帶初始化的聲明(direct define): 可以直接指定多個變數的類型和初始值。
var x, y int = 5, 8

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

var x, y = 5, 8
  1. 使用簡短變數聲明: 同樣也可以使用簡化的 := 語法同時宣告多個變數。
x, y := 5, 8
  1. 使用括號的平行賦值 使用括號 () 可以同時宣告多個不同類型的變數並賦予初始值。
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