在Go语言中,所有变量在声明时都会有一个默认的零值,即该类型的零值对象。以下是一些常见类型的零值对象:
- 数值类型(int、float等)的零值为0。
- 布尔类型的零值为false。
- 字符串类型的零值为空字符串""。
- 指针类型的零值为nil。
- 接口类型的零值为nil。
- 函数类型的零值为nil。
- 切片类型的零值为nil。
- 映射类型的零值为nil。
- 通道类型的零值为nil。
- 结构体类型的零值是其所有字段的零值。
以下是一些示例:
var i int // 零值为0
var f float32 // 零值为0.0
var b bool // 零值为false
var s string // 零值为空字符串""
var ptr *int // 零值为nil
var iface interface{
} // 零值为nil
var fn func() // 零值为nil
var slice []int // 零值为nil
var m map[string]int // 零值为nil
var ch chan int // 零值为nil
type Person struct {
Name string
Age int
}
var p Person // 结构体的零值为其字段的零值,p.Name为"",p.Age为0
这些零值对象在变量声明后自动分配给相应的变量,如果没有对变量进行初始化或赋值,它们将具有这些默认值。需要注意的是,这些零值只在变量声明时才会生效,在后续的操作中,可以根据需要对变量进行赋值或初始化来改变它们的值。