乐闻世界logo
搜索文章和话题

Go 中变量的默认值是什么?

4 个月前提问
4 个月前修改
浏览次数32

1个答案

1

在 Go 语言中,当变量被声明但没有显式地初始化时,它们会被赋予默认值,这些默认值也被称为零值(zero values)。不同类型的变量有不同的零值:

  • 整型(int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64) 的零值是 0
  • 浮点类型(float32, float64) 的零值也是 0
  • 布尔型(bool) 的零值是 false
  • 字符串(string) 的零值是空字符串 ""
  • 对于 指针(pointer) 类型,零值是 nil
  • 切片(slice)映射(map) 以及 通道(channel) 的零值也是 nil
  • 对于数组,每个元素都会被初始化为该元素类型的零值。
  • 对于结构体,每个字段都被初始化为该字段类型的零值。

举个例子,如果我们声明了以下的变量:

go
var a int var b float64 var c bool var d string var e *int

在这个例子中,变量 ab 将默认为 0c 将默认为 falsed 将默认为空字符串 "",而 e 的默认值将是 nil。这些默认值确保了变量在使用前已经有了一个确定的状态,有助于减少在程序中出现空指针或未初始化值的错误。

2024年8月7日 21:47 回复

你的答案