在Go语言中,变量和常量是用于存储数据的基本元素。它们允许你在程序的不同部分之间传递信息,并且可以用来保存计算的结果等。下面分别介绍变量和常量的定义方式及其特点。
变量
声明变量
-
使用
var
关键字:这是最常见的声明变量的方式。govar age int var name string age = 25 name = "Alice"
-
类型推断:如果初始化时指定了值,可以省略类型说明,编译器会根据值自动推断类型。
govar age = 25 var name = "Alice"
-
简短声明操作符
:=
:在函数内部,可以使用:=
来同时声明并初始化变量。这通常用于局部变量。goage := 25 name := "Alice"
go
-- 以上3种变量的定义赋值效果都一样,我比较喜欢的是简短声明。
初始化
变量可以在声明时直接赋初值,也可以稍后赋值。如果未显式初始化,变量将被赋予其类型的零值(例如,整型为0,字符串为空字符串"")。
修改
变量的值是可以修改的。一旦声明了变量,你可以在程序中的任何地方改变它的值。
go
age := 25
age = 30 // 修改变量的值
常量
声明常量
-
使用
const
关键字:常量在声明时必须指定一个初始值,且这个值不能被修改。goconst Pi = 3.14159 const MaxUsers = 100
-
iota :
iota
是一个特殊的预定义标识符,用于生成一系列递增的整数常量。goconst ( a = iota // a == 0 b // b == 1 c // c == 2 )
iota
还可以与位运算符结合使用,以创建一组相关的常量。goconst ( Read = 1 << iota // 0001 Write // 0010 Execute // 0100 )
特点
- 常量的值在编译时确定,并且在整个程序执行期间保持不变。
- 常量可以是数字、字符串或布尔值。
- 常量可以在包级别或函数内声明。
示例
go
package main
import "fmt"
func main() {
// 变量
var age int = 25
name := "Alice" // 使用简短声明
fmt.Println("Name:", name, "Age:", age)
// 修改变量
age = 30
fmt.Println("Updated Age:", age)
// 常量
const Pi = 3.14159
fmt.Println("Pi:", Pi)
// 使用 iota 的常量
const (
Read = 1 << iota // 0001
Write // 0010
Execute // 0100
)
fmt.Printf("Read: %b, Write: %b, Execute: %b\n", Read, Write, Execute)
}
在这个示例中,我们展示了如何声明变量和常量,以及如何使用iota
来创建一组相关的常量。通过这些基础概念,你可以开始构建更复杂的Go程序。