66 lines
1.4 KiB
Markdown
66 lines
1.4 KiB
Markdown
|
|
# 01-variables - 变量声明与作用域
|
|||
|
|
|
|||
|
|
## 知识点讲解
|
|||
|
|
|
|||
|
|
### 变量声明方式
|
|||
|
|
|
|||
|
|
Go语言有多种变量声明方式:
|
|||
|
|
|
|||
|
|
1. **标准声明**:`var 变量名 类型`
|
|||
|
|
```go
|
|||
|
|
var name string
|
|||
|
|
var age int
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **声明并初始化**:`var 变量名 类型 = 值` 或 `var 变量名 = 值`(类型推断)
|
|||
|
|
```go
|
|||
|
|
var name string = "Alice"
|
|||
|
|
var age = 25 // 类型自动推断为int
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **短变量声明**:`变量名 := 值`(只能在函数内使用)
|
|||
|
|
```go
|
|||
|
|
name := "Alice"
|
|||
|
|
age := 25
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. **批量声明**:
|
|||
|
|
```go
|
|||
|
|
var (
|
|||
|
|
name string
|
|||
|
|
age int
|
|||
|
|
score float64
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. **多变量声明**:
|
|||
|
|
```go
|
|||
|
|
var x, y int = 1, 2
|
|||
|
|
a, b := 3, 4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 变量作用域
|
|||
|
|
|
|||
|
|
- **全局变量**:在函数外声明,包内可见
|
|||
|
|
- **局部变量**:在函数内声明,仅函数内可见
|
|||
|
|
- **代码块变量**:在if、for等代码块内声明,仅代码块内可见
|
|||
|
|
|
|||
|
|
### 重要提示
|
|||
|
|
|
|||
|
|
- 变量声明后必须使用,否则会编译错误
|
|||
|
|
- `:=` 只能在函数内使用
|
|||
|
|
- 同一作用域内不能重复声明同名变量
|
|||
|
|
- 未初始化的变量会有零值:int=0, string="", float=0.0, bool=false, pointer=nil
|
|||
|
|
|
|||
|
|
## 学习目标
|
|||
|
|
|
|||
|
|
完成本练习后,你将:
|
|||
|
|
- ✅ 掌握5种变量声明方式
|
|||
|
|
- ✅ 理解变量作用域规则
|
|||
|
|
- ✅ 了解变量的零值
|
|||
|
|
- ✅ 能够正确使用短变量声明
|
|||
|
|
|
|||
|
|
## 练习说明
|
|||
|
|
|
|||
|
|
打开 `main.go`,根据注释提示填充代码,完成后运行 `go test -v` 验证答案。
|