全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-13 5 分钟 ✍️ juanwangdev

Go变量声明

Go变量声明方式简洁,支持var和短声明。

var声明

声明语法

Go
// 声明变量
var name string

// 声明并初始化
var name string = "Tom"

// 类型推断
var name = "Tom"  // 自动推断为string

多变量声明

Go
// 同类型多变量
var a, b, c int

// 不同类型多变量
var (
    name   string
    age    int
    active bool
)

批量声明

Go
var (
    port    int     = 8080
    host    string  = "localhost"
    debug   bool    = true
)

短变量声明

:=语法

Go
// 短变量声明(自动推断类型)
name := "Tom"
age := 25
active := true

// 多变量短声明
a, b := 1, 2
x, y, z := 1, "hello", true

:=只能在函数内使用,不能在包级别使用。

函数内使用

Go
func main() {
    // ✓ 函数内短声明
    count := 10

    // ✗ 包级别不能短声明
}

// ✗ 包级别短声明
count := 10  // 编译错误

声明方式对比

方式语法使用位置
varvar name type包级别/函数内
var+初始值var name = value包级别/函数内
短声明name := value仅函数内
批量varvar ( ... )包级别/函数内

var vs :=

选择依据

Go
// 包级别必须用var
var global int = 100

// 函数内推荐:=
func main() {
    local := 10  // 简洁

    // 零值声明用var
    var zero int  // 明确零值

    // 类型明确时用var
    var precision float64 = 3.14
}

声明并初始化时函数内优先用:=,声明零值时用var。

声明规则

变量必须使用

Go
func main() {
    var unused int  // 编译错误:未使用
}

Go强制变量使用,声明未用会编译错误。

不能重复声明

Go
var name string = "Tom"
var name string  // 编译错误:重复声明

name := "Tom"
name := "Jerry"  // 编译错误:重复声明

短声明可部分重用

Go
func main() {
    count := 10

    // ✓ 部分新变量,部分重用
    count, name := 20, "Tom"
    // count是赋值,name是新声明
}

:=至少有一个新变量时,其他变量可以是赋值。

类型推断

Go
// 自动推断类型
var a = 10         // int
var b = 3.14       // float64
var c = "hello"    // string
var d = true       // bool
var e = []int{1,2} // []int

// 短声明同样推断
f := 10         // int
g := 3.14       // float64
h := "hello"    // string

常见声明示例

Go
package main

// 包级别声明
var (
    config Config
    version string = "1.0"
)

func main() {
    // 函数内短声明
    name := "Tom"
    age := 25

    // 零值声明
    var result int

    // 多变量
    x, y := 1, 2

    // 使用变量(避免编译错误)
    fmt.Println(name, age, result, x, y)
}

要点总结

  • var声明:var name typevar name = value
  • :=短声明:函数内简洁声明
  • 包级别必须用var
  • 函数内声明并初始化优先:=
  • 批量声明用var ( ... )
  • 变量必须使用,未用编译错误
  • 不能重复声明同一变量名
  • :=至少一个新变量时可部分重用
  • Go自动推断变量类型

📝 发现内容有误?点击此处直接编辑

← 上一篇 Go变量初始化
下一篇 → Go基本数据类型
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库