本文基于平时的代码练习,梳理 Go 语言中变量的核心用法
变量是 Go 中存储数据的基本单元,需遵循「先声明、后使用」的原则,核心流程为「声明变量→给变量赋值→使用变量」。
package main
import"fmt"
func main(){
// 1. 变量声明:用 var 关键字,指定变量名和类型(int 类型)
var age int// 此时 age 有默认值 0(int 类型默认值)
// 2. 变量赋值:给已声明的变量赋具体值
age = 18 // 赋值后 age 的值变为 18
// 3. 变量使用:通过变量名调用数据
fmt.Println("age = ", age) // 输出:age = 18
// 简化:声明 + 赋值 合并为一句(推荐,减少代码量)
var age2 int = 19// 声明时直接赋值,无需默认值过渡
fmt.Println("age2 = ", age2) // 输出:age2 = 19
}Go 支持多种变量声明方式,可根据场景选择「指定类型」或「自动推断类型」,核心区别在于是否显式定义类型。
• 语法:var 变量名 类型 = 值
var num int = 18 // 显式声明 int 类型,赋值 18
fmt.Println(num) // 输出:18• 语法:var 变量名 类型
• 备注常见类型零值:int→0、string→空串 ""、float→0.0、bool→false。
var num2 int // 仅声明 int 类型,默认值 0
fmt.Println(num2) // 输出:0• 语法:var 变量名 = 值
var num3 = "tom" // 未指定类型,Go 推断为 string 类型
fmt.Println(num3) // 输出:tomGo 会根据「赋值的值」自动推断变量类型
• 语法:变量名 := 值
func main(){
sex := "男" // 函数内使用短变量,自动推断为 string 类型
fmt.Println(sex) // 输出:男
}仅能在函数内使用(全局变量不支持)
Go 支持批量声明多个变量,减少重复的 var 关键字,分为「局部多变量」和「全局多变量」两种场景。
• 语法:var 变量1, 变量2, 变量3 类型
•
var n1, n2, n3 int // 3 个变量均为 int 类型,默认值 0
fmt.Println(n1, n2, n3) // 输出:0 0 0• 语法:var 变量1, 变量2, 变量3 = 值1, 值2, 值3
var n4, name, n5 = 10, "jack", 7.8 // n4=int,name=string,n5=float64
fmt.Println(n4) // 输出:10
fmt.Println(name) // 输出:jack
fmt.Println(n5) // 输出:7.8• 语法:变量1, 变量2 := 值1, 值2
n6, height := 6.9, 100.6 // n6=float64,height=float64
fmt.Println(n6, height) // 输出:6.9 100.6• 语法:用 var () 包裹多个变量,每个变量占一行。
package main
import "fmt"
// 全局变量批量声明(推荐写法)
var (
n9 = 500 // int 类型
n10 = "netty" // string 类型
)
func main(){
fmt.Println(n9, n10) // 输出:500 netty
}变量三要素:声明(var 或 :=)、类型(显式指定或自动推断)、值(赋值或零值)
#Go #go基础