📅  最后修改于: 2023-12-03 14:41:32.643000             🧑  作者: Mango
在 Go 语言中,变量是用于存储数据的一种基本数据类型。在使用变量之前,必须先声明变量,变量的声明格式如下:
var variableName type
其中 variableName
为变量名,type
为数据类型。例如:
var age int
上面的代码声明了一个名为 age
的 int
类型变量。
在声明变量时,也可以对变量进行初始化,初始化的方式与赋值语句相同:
var variableName type = value
例如:
var age int = 18
上面的代码声明了一个名为 age
的 int
类型变量,并将其初始化为 18。
如果变量没有被初始化,则在使用时会默认赋予其零值。不同类型的零值不同,例如:
| 类型 | 零值 | | ----- | --------- | | int | 0 | | bool | false | | string | ""(空串)|
Go 还提供了一种简略的变量声明方式,可以在不需要显式指定类型的情况下声明变量:
variableName := value
例如:
age := 18
上面的代码声明了一个名为 age
的 int
类型变量,并将其初始化为 18。
在函数内部,还可以使用 :=
方式来定义局部变量。
Go 变量的作用域与其他语言类似,在代码块内部定义的变量只能在该代码块内部访问。例如:
package main
import "fmt"
func main() {
x := 10 // x 只能在 main 函数内部访问
if x > 5 {
y := 20 // y 只能在 if 语句块内部访问
fmt.Println(x, y)
}
fmt.Println(x)
}
输出:
10 20
10
除了普通变量之外,Go 还提供了指针类型变量。指针是一个变量,其值为另一个变量的地址。可以通过使用指针来间接访问变量的值。例如:
package main
import "fmt"
func main() {
x := 10
var pointer *int // 声明一个 int 类型的指针
pointer = &x // 将 pointer 的值设为 x 的地址
fmt.Println("x =", x) // 输出 x 的值
fmt.Println("pointer =", pointer) // 输出 pointer 的值
fmt.Println("*pointer =", *pointer) // 输出指针指向的值
}
输出:
x = 10
pointer = 0xc000018068 // x 的地址
*pointer = 10 // x 的值
在 Go 中,指针变量也可以使用 nil
来表示空指针,例如:
var pointer *int // 声明一个 int 类型的指针
if pointer == nil {
fmt.Println("pointer is nil")
}
以上是 Go 变量的基本介绍,可以通过变量的声明、初始化、赋值等操作来完成对数据的存储和处理。