02-Go 保留字之 iota
简介
在 Go 中,var
关键字用于声明变量。通过使用 var
,你可以定义一个或多个变量的类型和初始值。
Go 语言支持多种变量声明的语法,每种语法都有其特定的用途和适用场景。
语法
1 |
|
示例
1 |
|
类型推断(Type Inference)
Go 语言支持类型推断,即如果你在声明变量时提供了初始值,编译器可以自动推断出变量的类型。这使得代码更加简洁。
1 |
|
初始化时未指定初始值
在 Go 中,使用 var 关键字声明变量时,如果未显式指定初始值,系统会自动初始化变量的默认值。
- 数值类型的变量会被初始化为 0。
- 字符串类型的变量会被初始化为空字符串””。
- 布尔类型的变量会被初始化为false。
- 指针、切片、映射和函数类型的变量会被初始化为nil。
- 结构体类型的变量会被初始化为零值,即所有字段都被初始化为对应类型的零值。
初始化示例
1 |
|
短变量声明(Short Variable Declaration)
对于函数内部,可以使用更简洁的 :=
语法来声明并初始化变量,这种方式称为“短变量声明”。这种方式只能在函数内部使用,因为它依赖于函数级别的词法块来自动确定变量的作用域。
1 |
|
注意事项
- 使用
var
关键字声明的变量在包级别时,其作用域为整个包;在函数内部时,其作用域为当前函数。 - 使用
:=
进行短变量声明时,只能在函数内部使用,且编译器会自动推断变量的类型。 - 如果你在包级别使用
:=
,将会导致编译错误,因为包级别的变量不能使用:=
语法。 - 在函数内部,如果需要重新声明一个已经在外部声明的同名变量,可以使用
:=
但这通常是避免的,因为这样可以减少代码的清晰度。通常最好使用不同的变量名或者重新利用已有的变量。
通过合理使用 var
和 :=
,你可以根据不同的场景选择最适合的变量声明方式。
02-Go 保留字之 iota
https://flepeng.github.io/021-Go-31-Go-关键字-Go-保留字之-var/