在Go语言中,变量与常量是构建程序最基本的组成部分。本章将带你掌握变量和常量的声明方式、使用方法以及注意事项,打牢语言基础。
一、变量(Variable)
1.1 变量声明
Go语言支持多种变量声明方式:
方式一:标准声明
var a int
a = 10
方式二:同时赋初值
var b int = 20
方式三:类型推导(推荐)
var c = 30 // Go自动推导为int类型
方式四:短变量声明(只能在函数内部)
d := 40 // 自动推导类型
❗
:=
是声明+赋值,不能重复声明已有变量。
1.2 多变量声明
var x, y, z int = 1, 2, 3
也可以混合类型:
var (name string = "Go"age int = 14flag bool = true
)
1.3 零值(默认值)
Go会自动为未初始化的变量赋“零值”:
类型 | 零值 |
数字型 | 0 |
布尔型 | false |
字符串型 | "" |
指针/引用 | nil |
二、常量(Constant)
常量在声明时必须赋值,且值不能在运行时改变。
2.1 基本声明方式
const Pi = 3.14
const Name string = "GoLang"
2.2 多常量声明
const (A = 1B = "hello"C = true
)
2.3 枚举常量与 iota
iota
是Go的常量计数器,在每个 const 块中从0开始递增:
const (Red = iota // 0Green // 1Blue // 2
)
也可以做位运算:
const (Read = 1 << iota // 1 << 0 = 1Write // 1 << 1 = 2Execute // 1 << 2 = 4
)
三、变量与常量的区别
项目 | 变量 | 常量 |
是否可变 | 是 | 否 |
必须赋值 | 否(有零值) | 是 |
使用位置 | 全局/局部 | 全局/局部 |
类型推导 | 支持 | 支持 |
典型用途 | 临时状态数据 | 配置/控制标识符 |
四、注意事项
- •
:=
不能用于全局变量声明,只能在函数内部使用; - • 常量不能使用函数返回值初始化;
- • 不使用的变量会导致编译错误(Go强调代码整洁);
- • 常量间可进行类型转换和运算,但不能赋给变量再变更。
五、实践示例
package mainimport "fmt"const (Monday = iota + 1TuesdayWednesday
)func main() {var name = "Go"age := 15const version = "1.21"fmt.Println("Language:", name)fmt.Println("Age:", age)fmt.Println("Version:", version)fmt.Println("Weekdays:", Monday, Tuesday, Wednesday)
}
输出:
Language: Go
Age: 15
Version: 1.21
Weekdays: 1 2 3
六、小结
- • 变量是可变的数据容器,支持显式声明和类型推导;
- • 常量用于存放不可变值,支持
iota
实现自增枚举; - •
:=
是Go特有的语法糖,但仅限于函数内部使用; - • 常量和变量一样支持批量声明,代码更整洁;