Golang var 关键字
最后修改于 2025 年 5 月 7 日
本教程将讲解如何在 Go 中使用 var
关键字。我们将通过不同用法的实际示例来介绍变量声明基础知识。
var
关键字用于在 Go 中声明变量,可以选择性地为其初始化值。它用于显式声明带类型的变量。
在 Go 中,var
可以声明单个变量、多个变量和包级变量。它提供了清晰的类型规范和初始化控制。
基本变量声明
var
最简单的用法是声明一个带有类型的单个变量。此示例展示了基本的变量声明。
package main import "fmt" func main() { var age int age = 30 fmt.Println("Age:", age) }
变量 age
被声明为 int
类型,之后为其赋值。初始时分配整数的零值(0)。
带初始化的变量
var
可以在一条语句中声明并初始化变量。此示例展示了带即时初始化的声明。
package main import "fmt" func main() { var name string = "Alice" var height float64 = 1.75 fmt.Println("Name:", name) fmt.Println("Height:", height) }
两个变量都已声明了它们的类型和初始值。当初始化器提供足够的类型信息时,可以省略类型。
使用 var 进行类型推断
Go 可以从初始化器推断变量类型。此示例使用 var
关键字演示了类型推断。
package main import "fmt" func main() { var active = true var count = 42 var price = 19.99 fmt.Printf("active: %T, %v\n", active, active) fmt.Printf("count: %T, %v\n", count, count) fmt.Printf("price: %T, %v\n", price, price) }
变量根据赋给它们的值获得类型:bool
、int
和 float64
。%T
动词显示了推断出的类型。
多个变量声明
var
可以在一条语句中声明多个变量。此示例展示了声明多个变量的不同方法。
package main import "fmt" func main() { var x, y int = 10, 20 var a, b = "hello", true var ( name = "Bob" age = 25 ) fmt.Println(x, y) fmt.Println(a, b) fmt.Println(name, age) }
变量可以声明为相同类型、不同类型或在块中。括号创建了一个声明块,以提高可读性。
包级变量
var
可以在包作用域声明变量。这些变量在整个包中可访问。此示例展示了包级变量。
package main import "fmt" var globalCount = 0 func increment() { globalCount++ } func main() { fmt.Println("Initial count:", globalCount) increment() increment() fmt.Println("Final count:", globalCount) }
globalCount
在包内的所有函数中都可访问。包变量存在于程序的整个生命周期。
使用 var 的零值
使用 var
声明的变量在未初始化时会接收零值。此示例演示了默认的零值。
package main import "fmt" func main() { var i int var f float64 var b bool var s string fmt.Printf("int: %v\n", i) fmt.Printf("float64: %v\n", f) fmt.Printf("bool: %v\n", b) fmt.Printf("string: %q\n", s) }
零值对于数字是 0,对于布尔值是 false,对于字符串是 ""。%q
动词将空字符串显示为 ""。
var 与短声明
此示例将 var
与短声明语法进行对比,以突出它们的区别。
package main import "fmt" var packageVar = "I'm a package variable" func main() { // Using var var functionVar = "I'm a function variable" // Short declaration shortVar := "I'm a short declaration" fmt.Println(packageVar) fmt.Println(functionVar) fmt.Println(shortVar) // Re-declaration with short syntax shortVar, anotherVar := "changed", "new" fmt.Println(shortVar, anotherVar) }
var
可在包级别和函数级别工作,而短声明仅限于函数。短语法允许在声明新变量时重新声明。
来源
本教程通过变量在各种场景下声明的实际示例,介绍了 Go 中的 var
关键字。