Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語言結(jié)構(gòu)體和指針

您也可以使用指向struct的指針。Golang中的struct(結(jié)構(gòu)體)是用戶定義的類型,它允許將可能不同類型的項(xiàng)目分組/組合為單個(gè)類型。要使用指向結(jié)構(gòu)的指針,可以使用運(yùn)算符,即地址運(yùn)算符。Golang允許程序員使用指針訪問結(jié)構(gòu)的字段,而無需顯式地解引用。

示例1:在這里,我們創(chuàng)建了一個(gè)名為Employee的結(jié)構(gòu),它有兩個(gè)變量。在main函數(shù)中,創(chuàng)建結(jié)構(gòu)體的實(shí)例,即emp,然后,你可以將結(jié)構(gòu)體的地址傳遞給表示結(jié)構(gòu)體概念的指針。沒有必要顯式地使用解引用,因?yàn)樗鼤?huì)給出與下面程序相同的結(jié)果(兩次ABC)。

package main

import "fmt"

//定義結(jié)構(gòu)體
type Employee struct {

    //設(shè)置字段
    name  string
    empid int
}

func main() {

    //創(chuàng)建的實(shí)例
    //員工結(jié)構(gòu)體類型
    emp := Employee{"ABC", 19078}

    //在這里,它是指向結(jié)構(gòu)體的指針
    pts := &emp

    fmt.Println(pts)

    //訪問結(jié)構(gòu)字段(員工的姓名)
    //使用指針,但是這里我們沒有使用顯式解引用
    fmt.Println(pts.name)

    //通過顯式使用解引用
    //表示結(jié)果與上面相同
    fmt.Println((*pts).name)

}

輸出:

&{ABC 19078}
ABC
ABC

示例2:您還可以使用指針,如下所示修改結(jié)構(gòu)成員或結(jié)構(gòu)字面量的值:

package main

import "fmt"

//定義結(jié)構(gòu)體
type Employee struct {
    name  string
    empid int
}

func main() {

    //創(chuàng)建的實(shí)例
    //員工結(jié)構(gòu)類型
    emp := Employee{"ABC", 19078}

    //在這里,它是指向結(jié)構(gòu)體的指針
    pts := &emp

    //顯示值
    fmt.Println(pts)

    //更新name的值
    pts.name = "XYZ"

    fmt.Println(pts)

}

輸出:

&{ABC 19078}
&{XYZ 19078}
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清