Go 变量

变量是存放数据的命名空间,可以随时读取或修改。Go 提供多种声明方式。以下代码片段省略外壳,均可放入 main 函数运行。

1. var + 类型

先声明、后赋值:

var name string // 只声明,初值为零值 ""
name = "小明"
fmt.Println(name) // 输出: 小明

2. var + 类型 + 初值

声明同时赋值:

var age int = 25
var score float64 = 98.5
fmt.Println(age, score) // 输出: 25 98.5

3. 省略类型与短变量 :=

省略类型时由编译器推断;:= 声明并赋值一步完成,只能用于函数内:

var city = "北京" // 推断为 string
n := 100         // 等价于 var n = 100
fmt.Println(city, n) // 输出: 北京 100

4. 多变量同时声明

var a, b, c int = 1, 2, 3 // 同一类型
x, y := "Go", 3.14        // 不同类型,自动推断
fmt.Println(a+b+c)        // 输出: 6
fmt.Println(x, y)         // 输出: Go 3.14

5. 零值

只声明不赋值时自动取「零值」,而不是随机垃圾值:

类型零值
int 等数字0
float0.0
string""
boolfalse
var n int
var s string
var ok bool
fmt.Println(n, s == "", ok) // 输出: 0 true false

6. 类型转换

Go 不允许隐式类型转换,必须显式写成 T(表达式)

a, b := 97, 3.7
c := float64(a)      // int 转 float64
d := int(b)          // 小数被丢弃,得 3
e := string(rune(a)) // 数字 97 转字符 'a'
fmt.Println(c, d, e) // 输出: 97 3 a

小结

声明变量用 var 或 :=(仅函数内);牢记零值机制;跨类型转换务必显式写出,避免编译报错。

笔记加载中…