在Go语言中,所有变量在声明时都会有一个默认的零值,即该类型的零值对象。以下是一些常见类型的零值对象:

  1. 数值类型(int、float等)的零值为0。
  2. 布尔类型的零值为false。
  3. 字符串类型的零值为空字符串""。
  4. 指针类型的零值为nil。
  5. 接口类型的零值为nil。
  6. 函数类型的零值为nil。
  7. 切片类型的零值为nil。
  8. 映射类型的零值为nil。
  9. 通道类型的零值为nil。
  10. 结构体类型的零值是其所有字段的零值。

以下是一些示例:

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

这些零值对象在变量声明后自动分配给相应的变量,如果没有对变量进行初始化或赋值,它们将具有这些默认值。需要注意的是,这些零值只在变量声明时才会生效,在后续的操作中,可以根据需要对变量进行赋值或初始化来改变它们的值。