Go语言中变量声明有var和:=两种方式:var用于包级或需显式类型/延迟赋值的场景,支持只声明不赋值;:=仅限函数内,必须初始化且自动推导类型,简洁但不可重复声明同一变量。

在 Go 语言中,定义变量是编写程序的基础操作。Go 提供了两种常用方式:使用 var 关键字显式声明,以及使用短变量声明(:=)快速初始化。它们适用场景不同,理解区别能帮你写出更清晰、更安全的代码。
用 var 声明变量:明确类型,支持延迟赋值
var 是最基础的变量声明方式,语法清晰,适合需要显式指定类型、或先声明后赋值的场景。
- 基本语法:
var name type(只声明,不赋值,变量获得该类型的零值) - 带初始值:
var name type = value或var name = value(类型可由编译器推导) - 多个变量可批量声明,提升可读性:
a int = 10
b string = "hello"
c bool
)
注意:c 没有初始化,自动为 false(bool 类型零值)。这种块式声明常用于包级变量或逻辑分组。
用 := 短变量声明:简洁高效,仅限函数内
:= 是 Go 特有的语法糖,只能在函数内部使用,它同时完成声明和初始化,并自动推导类型。
立即学习“go语言免费学习笔记(深入)”;
- 写法:
name := value,等价于var name = value - 必须有初始值,不能单独声明(
x :=会报错) - 如果左侧变量已声明过,且在同一作用域,
:=不能重复使用(除非是“重新声明”——即部分变量是新声明的,且已有变量类型一致)
x := 42 // 声明 int
y := "world" // 声明 string
x, z := 99, true // x 重声明(类型仍是 int),z 是新变量
}
var 和 := 的关键区别与选用建议
-
var支持包级变量声明;:=只能在函数体内用 -
var可以只声明不赋值(获得零值);:=必须提供初始值 - 需要明确类型(如避免 int/int64 混淆)、或变量稍后才赋值时,优先用
var - 函数内快速创建局部变量、类型易推导时,
:=更简洁自然










