Back

[Go 教學] 1. 變數與零值

變數宣告 Variable Declaration

使用 var 關鍵字進行宣告,型別需寫在變數名稱後方。

1
2
3
var a int
var b bool
var str string

你也可以這麼寫:

1
2
3
4
5
var (
    a int
    b bool
    str string
)

多變數宣告:

1
var a, b, c int

初始化變數 Variable Declaration With Initialization

變數可以在編譯時期內被賦值,使用等號 = 進行初始化宣告。

1
2
3
var a int = 3
var b bool = false
var str string = "Hello World!"

Go 的編譯器可以根據值來自動推導型別,故型別可省略。

1
2
3
var a = 3
var b = false
var str = "Hello World!"

多變數 + 自動型別推導宣告:

1
var a, b, str = 3, false, "Hello World!"

短變數宣告 Short Variable Declaration (最常用)

冒號等於 := 可以進行變數宣告,並且自動推導型別。
要注意的一點是,短變數宣告只可於函數內使用,因為函數外的每個語法都必須以關鍵字做為開頭。

1
2
3
a := 3
b := false
str := "Hello World!"

多變數 + 短變數宣告:

1
a, b, str := 3, false, "Hello World!"

原則上若無特別需求,盡量不要進行不同型別的多變數宣告,這會使程式的可讀性變差。

零值 Zero Value

變數宣告時若無指定初始值,則會被賦予該型別的零值。

以下是所有基本型別的零值:

DescriptionTypeValue
Integer numbersint, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr, byte(alias for uint8), rune(alias for int32)0
Floating point numbersfloat32, float640.0
Complex numberscomplex64, complex1280+0i
Booleansboolfalse
Stringsstring""
Othersinterface, slice, map, pointer, func, channil

之後我會再額外對型別進行深度的講解,目前只需要知道未被手動初始化的變數必為零值即可。
也因為這個特性,讓 Go 的使用上方便了許多。

CC BY-NC-ND
Last updated on Feb 04, 2023 03:59 +0800
Built with Hugo
Theme Stack designed by Jimmy
© Licensed Under CC BY-NC-SA 4.0