Go 变量
变量是用于存储数据值的容器。
Go 变量类型
在 Go 中,有不同**类型**的变量,例如:
int
- 存储整数(整型数),例如 123 或 -123float32
- 存储浮点数,带小数,例如 19.99 或 -19.99string
- 存储文本,例如 "Hello World"。字符串值用双引号括起来bool
- 存储有两种状态的值:true 或 false
关于不同变量类型的更多信息,将在 Go 数据类型章节进行解释。
声明(创建)变量
在 Go 中,有两种声明变量的方式:
1. 使用 var
关键字
使用 var
关键字,后跟变量名和类型
语法
var variablename type = value
注意:您必须始终指定 type
或 value
(或两者)。
2. 使用 :=
符号
使用 :=
符号,后跟变量值
语法
variablename := value
注意: 在这种情况下,变量的类型是根据值**推断**出来的(这意味着编译器会根据值来决定变量的类型)。
注意:不能使用 :=
声明一个没有赋值的变量。
带初始值的变量声明
如果变量的值从一开始就知道,您可以在一行中声明变量并为其赋值
示例
package main
import ("fmt")
func main() {
var student1 string = "John" // 类型是 string
var student2 = "Jane" // 类型被推断
x := 2 // 类型被推断
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
关键字在函数外部声明变量
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