Go語言中無論是全局變量還是局部變量,隻要定義了一個變量都有預設的0值
int/int8/int16/int32/int64/uint/uint8/uint16/uint32/uint64/byte/rune/uintptr的預設值是0
float32/float64的預設值是0.0
bool的預設值是false
string的預設值是""
pointer/function/interface/slice/channel/map/error的預設值是nil
其它複合類型array/struct預設值是内部資料類型的預設值
package main
import "fmt"
func main() {
var intV int // 整型變量
var floatV float32 // 實型變量
var boolV bool // 布爾型變量
var stringV string // 字元串變量
var pointerV *int // 指針變量
var funcV func(int, int)int // function變量
var interfaceV interface{} // 接口變量
var sliceV []int // 切片變量
var channelV chan int // channel變量
var mapV map[string]string // map變量
var errorV error // error變量
fmt.Println("int = ", intV) // 0
fmt.Println("float = ", floatV) // 0
fmt.Println("bool = ", boolV) // false
fmt.Println("string = ", stringV) // ""
fmt.Println("pointer = ", pointerV) // nil
fmt.Println("func = ", funcV) // nil
fmt.Println("interface = ", interfaceV) // nil
fmt.Println("slice = ", sliceV) // []
fmt.Println("slice = ", sliceV == nil) // true
fmt.Println("channel = ", channelV) // nil
fmt.Println("map = ", mapV) // map[]
fmt.Println("map = ", mapV == nil) // true
fmt.Println("error = ", errorV) // nil
var arraryV [3]int // 數組變量
type Person struct{
name string
age int
}
var structV Person // 結構體變量
fmt.Println("arrary = ", arraryV) // [0, 0, 0]
fmt.Println("struct = ", structV) // {"" 0}
}
-------------------------------------------
個性簽名:代碼過萬,鍵盤敲爛!!!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,部落客在此感謝!