变量是存储数据值的容器。
在 Go 中,有不同的类型变量,例如:
int
- 存储整数(整数),例如 123 或 -123float32
- 存储浮点数,带小数,例如 19.99 或 -19.99string
- 存储文本,例如"Hello World"。字符串值用双引号括起来bool
- 存储具有两种状态的值:true 或 false有关不同变量类型的更多信息,将在Go 数据类型章节。
在 Go 中,有两种声明变量的方法:
var
关键字:使用var
关键字,后跟变量名称和类型:
var
variablename type =
value
笔记:您始终必须指定type
或者value
(或两者)。
:=
符号:使用:=
符号,后跟变量值:
variablename :=
value
笔记:在这种情况下,变量的类型是推断来自值(意味着编译器根据值决定变量的类型)。
笔记:无法使用以下方式声明变量:=
,而不为其赋值。
如果变量的值从一开始就已知,则可以在一行中声明该变量并为其赋值:
package main
import ("fmt")
func main() {
var student1 string = "John"
//type is string
var student2 = "Jane"
//type is inferred
x := 2
//type is inferred
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
亲自试一试 »
笔记:的变量类型student2
和x
是推断来自他们的值。
在Go中,所有变量都被初始化。因此,如果你声明一个没有初始值的变量,它的值将被设置为其类型的默认值:
package main
import ("fmt")
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
亲自试一试 »
在这个例子中有3个变量:
a
b
c
这些变量已声明,但尚未分配初始值。
通过运行代码,我们可以看到它们已经有了各自类型的默认值:
a
是""
b
是0
c
是false
声明变量后可以为其赋值。这对于最初未知该值的情况很有帮助。
package main
import ("fmt")
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
亲自试一试 »
笔记:无法使用“声明变量”:=
" 而不为其赋值。
之间存在一些细微的差异var
变量:=
:
var | := |
---|---|
Can be used inside and outside of functions | Can only be used inside functions |
Variable declaration and value assignment can be done separately | Variable declaration and value assignment cannot be done separately (must be done in the same line) |
此示例显示在函数外部声明变量,使用var
关键字:
package main
import ("fmt")
var a int
var b int = 2
var c = 3
func main() {
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
亲自试一试 »
自从:=
在函数外部使用,运行程序会导致错误。
package main
import ("fmt")
a := 1
func main() {
fmt.Println(a)
}
结果:
./prog.go:5:1: syntax error: non-declaration statement outside function body
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!