变量与常量 - Go 基础语法
变量和常量是程序的基本组成单元。Go 提供了多种声明变量的方式,以及常量和 iota 枚举,掌握这些是编写 Go 代码的基础。
变量声明
📝 四种声明方式
package main
import "fmt"
func main() {
// 方式 1: var 关键字
var name string = "Go"
// 方式 2: 类型推断
var version = "1.26"
// 方式 3: 短变量声明 (推荐)
// := 自动推断类型
// 只能在函数内使用
// 至少有一个新变量
age := 15
// 方式 4: 零值初始化
var count int // 0
var active bool // false
fmt.Printf("%s %s, age %d\n", name, version, age)
}
// 批量声明
var (
host = "localhost"
port = 8080
)
// 多变量赋值
func swap(a, b int) (int, int) {
return b, a
}
💡 变量要点
- 短变量声明: 函数内优先使用 :=
- 类型推断: 编译器自动推断类型
- 零值: 未初始化变量有默认零值
- 作用域: := 声明的变量作用域最小化
常量
📝 常量定义
package main
import "fmt"
// 常量定义
const Pi = 3.14159
const MaxUsers = 1000
// 批量定义
const (
StatusOK = 200
StatusNotFound = 404
StatusError = 500
)
// 常量不能修改
// MaxUsers = 2000 // ❌ 编译错误
func main() {
fmt.Printf("Pi: %f\n", Pi)
fmt.Printf("Max: %d\n", MaxUsers)
}
iota 枚举
📝 iota 自增常量
package main
import "fmt"
func main() {
// iota: 从 0 开始自增
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
)
// iota 表达式
const (
_ = iota // 忽略 0
KB = 1 << (10 * iota) // 1024
MB = 1 << (10 * iota) // 1048576
GB = 1 << (10 * iota) // 1073741824
)
// 多行同一值
const (
A = iota // 0
B // 1
C = iota // 2 (重置)
D // 3
)
fmt.Println(Monday, KB, MB, GB)
}