Go 变量
变量是存储数据值的容器。
Go 变量类型
在 Go 中,有不同的类型变量,例如:
int
- 存储整数(整数),例如 123 或 -123float32
- 存储浮点数,带小数,例如 19.99 或 -19.99string
- 存储文本,例如"Hello World"。 字符串值用双引号括起来bool
- 存储具有两种状态的值:真或假
关于不同变量类型的更多信息,将在 Go 数据类型一章中解释。
声明(创建)变量
在 Go 中,有两种声明变量的方法:
1. 使用 var
关键字:
使用 var
关键字,后跟变量名和类型:
语法
var variablename type = value
注意:您始终必须指定 type
或 value
( 或两者兼有)。
2. 使用 :=
符号:
使用 :=
符号,后跟变量值:
语法
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
var :=
:
var | := |
---|---|
可以在函数内和函数外使用 | 只能在内部函数中使用 |
变量声明和赋值可以分开进行 | 变量声明和赋值不能分开做(必须在同一行做) |
实例
这个例子展示了在函数外部声明变量,使用 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