Go 变量
变量是存储数据值的容器。
Go 变量类型
在 Go 中,有不同的 类型 变量,例如:
int
- 存储整数(整数),例如 123 或 -123float32
- 存储带有小数的浮点数,例如 19.99 或 -19.99string
- 存储文本,例如“Hello World”。字符串值用双引号括起来bool
- 存储两种状态的值:true 或 false
有关不同变量类型的更多内容,将在 Go 数据类型 章节。
声明(创建)变量
在Go中,有两种方式声明变量:
1. 使用 var
关键词:
使用 var
关键字,后跟变量名和类型:
句法
变量 变量名 类型 = 价值
笔记: 您始终必须指定type
或者value
(或两者)。
2. 使用 :=
符号:
使用 :=
符号,后跟变量值:
句法
变量名 := 价值
笔记: 在这种情况下,变量的类型是推断 从值(意味着编译器根据值来决定变量的类型)。
笔记: 无法使用以下方式声明变量:=
,而不为其分配值。
带初始值的变量声明
如果从一开始就知道变量的值,则可以在一行上声明该变量并为其赋值:
例子
软件包 main
导入(“fmt”)
函数main(){
var student1 字符串 = “John” //类型是字符串
var 学生2 = “Jane” //类型是推断的
x := 2 //类型是推断的
fmt.Println(学生1)
fmt.Println(student2)
fmt.Println(x)
}
亲自尝试 »
笔记: 变量类型student2
和x
是推断 从他们的价值观出发。
无初值的变量声明
在 Go 中,所有变量都会被初始化。因此,如果你声明一个没有初始值的变量,它的值将被设置为其类型的默认值:
例子
软件包 main
导入(“fmt”)
函数main(){
变量为字符串
变量 b int
变量 c 布尔值
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
亲自尝试 »
示例解释
此示例中有 3 个变量:
a
b
c
这些变量已声明,但尚未分配初始值。
通过运行代码我们可以看到它们已经具有了各自类型的默认值:
a
是""
b
是0
c
是false
声明后赋值
可以在声明变量后为其赋值。这对于最初不知道该值的情况很有用。
笔记: 不能使用“:=
“而不为其分配任何值。
var 和 := 之间的区别
两者之间存在一些细微的差异 var
和:=
:
变量 | := |
---|---|
可以使用 里面 和外部 功能 | 只能使用 里面 功能 |
变量声明与赋值 可以单独完成 | 变量声明与赋值 无法单独完成 (必须在同一行完成) |
例子
此示例显示了在函数外部声明变量,其中 var
关键词:
软件包 main
导入(“fmt”)
变量 a int
var b int = 2
变量 c = 3
函数main(){
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
亲自尝试 »
例子
自从 :=
在函数外使用,运行程序会导致错误。
软件包 main
导入(“fmt”)
a := 1
函数main(){
fmt.Println(a)
}
结果:
./prog.go:5:1: syntax error: non-declaration statement outside function body