package main import "fmt" type InterfaceDemo interface { Foo(args ...any) any } type Human struct { Name string // 姓名 Gender string // 性别 Age int // 年龄 } func main() { var varInt int fmt.Printf("int的零值是:%#v \n", varInt) // int的零值是:0 var varInt32 int32 fmt.Printf("int32的零值是:%#v \n", varInt32) // int32的零值是:0 var varInt64 int64 fmt.Printf("int64的零值是:%#v \n", varInt64) // int64的零值是:0 var varFloat32 float32 fmt.Printf("float32的零值是:%#v \n", varFloat32) // float32的零值是:0 var varFloat64 float64 fmt.Printf("float64的零值是:%#v \n", varFloat64) // float64的零值是:0 var varString string fmt.Printf("string的零值是:%#v \n", varString) // string的零值是:"" var varBool bool fmt.Printf("bool的零值是:%#v \n", varBool) // bool的零值是:false var varAny any fmt.Printf("any的零值是:%#v \n", varAny) // any的零值是:<nil> var varArrayInt [5]int fmt.Printf("int数组的零值是:%#v \n", varArrayInt) // int数组的零值是:[5]int{0, 0, 0, 0, 0} var varArrayString [5]string fmt.Printf("string数组的零值是:%#v \n", varArrayString) // string数组的零值是:[5]string{"", "", "", "", ""} var varArrayBool [5]bool fmt.Printf("bool数组的零值是:%#v \n", varArrayBool) // bool数组的零值是:[5]bool{false, false, false, false, false} var varPointerInt *int fmt.Printf("*int的零值是:%#v \n", varPointerInt) // *int的零值是:(*int)(nil) var varPointerString *string fmt.Printf("*string的零值是:%#v \n", varPointerString) // *string的零值是:(*string)(nil) var varMap map[string]any fmt.Printf("map[string]any的零值是:%#v \n", varMap) // map[string]any的零值是:map[string]interface {}(nil) var varChanString chan string fmt.Printf("chan string的零值是:%#v \n", varChanString) // chan string的零值是:(chan string)(nil) var varSliceString []string fmt.Printf("[]string的零值是:%#v \n", varSliceString) // []string的零值是:[]string(nil) var varSliceByte []byte fmt.Printf("[]byte的零值是:%#v \n", varSliceByte) // []byte的零值是:[]byte(nil) var varInterface InterfaceDemo fmt.Printf("interface的零值是:%#v \n", varInterface) // interface的零值是:<nil> var varHuman Human fmt.Printf("结构体的零值是:%#v \n", varHuman) // 结构体的零值是:main.Human{Name:"", Gender:"", Age:0} var varFunc func(num1 int, num2 int) (sum int) fmt.Printf("func的零值是:%#v \n", varFunc) // func的零值是:(func(int, int) int)(nil) } //========== 总结 ==========// // any的零值是nil。 // 指针的零值是nil。 // map的零值是nil。 // chan的零值是nil。 // interface的零值是nil。 // 切片的零值是nil。 // func的零值是nil。 // 数组的零值不是nil,它会用其元素的零值去填充所有元素。 // 结构体的零值不是nil,它的属性的值就是每个属性的零值。
Copyright © 2025 码农人生. All Rights Reserved