📜  Go-变量(1)

📅  最后修改于: 2023-12-03 14:41:32.643000             🧑  作者: Mango

Go 变量

在 Go 语言中,变量是用于存储数据的一种基本数据类型。在使用变量之前,必须先声明变量,变量的声明格式如下:

var variableName type

其中 variableName 为变量名,type 为数据类型。例如:

var age int

上面的代码声明了一个名为 ageint 类型变量。

在声明变量时,也可以对变量进行初始化,初始化的方式与赋值语句相同:

var variableName type = value

例如:

var age int = 18

上面的代码声明了一个名为 ageint 类型变量,并将其初始化为 18。

如果变量没有被初始化,则在使用时会默认赋予其零值。不同类型的零值不同,例如:

| 类型 | 零值 | | ----- | --------- | | int | 0 | | bool | false | | string | ""(空串)|

Go 还提供了一种简略的变量声明方式,可以在不需要显式指定类型的情况下声明变量:

variableName := value

例如:

age := 18

上面的代码声明了一个名为 ageint 类型变量,并将其初始化为 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 变量的基本介绍,可以通过变量的声明、初始化、赋值等操作来完成对数据的存储和处理。