Golang 各型態的零值

剛開始學Go時,一定會學到Go的各種型態,如string、int、struct等等,通常學習的書或文章會稍微的補充一下各個型態的零值,但因為我們剛學,加上看起來很自然(例如,int的零值是0,對阿,不然勒),所以很容易就忽略了,但隨著Go越寫越深,開始發現零值在Golang程式中是需要好好保握的一個東西,例如,當我們建立(new)一個struct的實例時,若沒有直接指定,裡面的變數都會預先設定為零值。因此這篇記錄一下Golang各型態的零值供我自己及讀者忘了時回來Check一下囉。

類型Golang Type Name零值
字符byte, rune0
數字float32, float64, int, int8, int16, int32, int64, uint, unit8, uint16, uint32, uint64, complex64,complex1280
布林boolfalse
字串string“”
slice[]Typenil
mapmap[Type]Typenil
指針uintptrnil
函數funcnil
interfaceinterfacenil
channelchannil
golang 各型態零值

所以不要再犯 variable string != nil 這種錯誤啦(跟我自己說)!