在 Go 语言中,变量用于存储和操作数据。变量是程序的基础,它允许程序在执行过程中存储信息并进行修改。Go 语言的变量声明简单且灵活,支持多种方式来定义变量。
📖 目录
1. 声明变量
在 Go 语言中,变量可以使用 var
关键字进行声明,变量的类型可以在声明时明确指定,或者由 Go 的类型推导机制自动推断。
1.1 显式声明
通过 var
关键字声明变量,并指定变量的类型和初始值。
示例:
package main
import "fmt"
func main() {
var age int = 25
var name string = "John"
var isActive bool = true
fmt.Println(age) // 输出: 25
fmt.Println(name) // 输出: John
fmt.Println(isActive) // 输出: true
}
1.2 简短声明(省略类型)
在函数内部,可以使用 :=
来声明并初始化变量,Go 会自动推断变量的类型。简短声明只能在函数内部使用。
示例:
package main
import "fmt"
func main() {
age := 25 // Go 自动推导为 int 类型
name := "John" // Go 自动推导为 string 类型
isActive := true // Go 自动推导为 bool 类型
fmt.Println(age) // 输出: 25
fmt.Println(name) // 输出: John
fmt.Println(isActive) // 输出: true
}
2. 变量的类型
在 Go 中,每个变量都有一个类型,它决定了变量可以存储的数据种类。类型的声明可以在变量声明时进行,或者通过简短声明推导得出。
2.1 常见的基本数据类型
- 整型(如
int
、int8
、int16
、int32
、int64
等) - 浮点型(如
float32
、float64
) - 布尔型(
bool
) - 字符型(
rune
) - 字符串(
string
)
2.2 数组类型
var arr [3]int = [3]int{1, 2, 3}
2.3 切片类型
var slice []int = []int{1, 2, 3}
3. 变量赋值
Go 支持直接给变量赋值,可以通过显式赋值或简短赋值来实现。
3.1 显式赋值
通过变量名赋予新值。
示例:
package main
import "fmt"
func main() {
var age int = 25
age = 30 // 给变量 age 赋新值
fmt.Println(age) // 输出: 30
}
3.2 简短赋值
在函数内部使用 :=
语法来进行赋值操作,Go 会根据右侧表达式的类型推导变量的类型。
示例:
package main
import "fmt"
func main() {
age := 25
age = 30 // 简短赋值语法
fmt.Println(age) // 输出: 30
}
4. 变量的作用域
Go 语言中的变量有两种作用域:局部变量和全局变量。
- 局部变量:在函数内部声明的变量,它的作用范围仅限于函数内部。
- 全局变量:在函数外部声明的变量,整个包内都可以访问。
4.1 局部变量
package main
import "fmt"
func main() {
var localVar int = 10 // 局部变量
fmt.Println(localVar) // 输出: 10
}
4.2 全局变量
package main
import "fmt"
var globalVar int = 100 // 全局变量
func main() {
fmt.Println(globalVar) // 输出: 100
}
5. 多重赋值
Go 语言允许在一行代码中对多个变量进行赋值,称为多重赋值。这在需要交换变量值时非常有用。
5.1 交换变量的值
package main
import "fmt"
func main() {
a, b := 10, 20
a, b = b, a // 交换 a 和 b 的值
fmt.Println(a) // 输出: 20
fmt.Println(b) // 输出: 10
}
6. 常量与变量的区别
常量和变量在 Go 中的主要区别如下:
- 常量:常量一旦赋值后不能更改,它的值在编译时就已确定。使用
const
关键字声明。 - 变量:变量的值可以在程序运行时修改,使用
var
或:=
进行声明。
示例:
package main
import "fmt"
const Pi = 3.14159 // 常量
func main() {
var radius float64 = 5
area := Pi * radius * radius // 使用常量计算面积
fmt.Println(area) // 输出: 78.53975
}
7. 参考资料
Go 语言的变量系统非常灵活,可以帮助程序员轻松管理数据。通过理解变量的声明、赋值及其作用域,你能够编写更加简洁且高效的程序。
发表回复