您也可以使用指向struct的指針。Golang中的struct(結構體)是用戶定義的類型,它允許將可能不同類型的項目分組/組合為單個類型。要使用指向結構的指針,可以使用&運算符,即地址運算符。Golang允許程序員使用指針訪問結構的字段,而無需顯式地解引用。
示例1:在這里,我們創(chuàng)建了一個名為Employee的結構,它有兩個變量。在main函數中,創(chuàng)建結構體的實例,即emp,然后,你可以將結構體的地址傳遞給表示結構體概念的指針。沒有必要顯式地使用解引用,因為它會給出與下面程序相同的結果(兩次ABC)。
package main
import "fmt"
//定義結構體
type Employee struct {
//設置字段
name string
empid int
}
func main() {
//創(chuàng)建的實例
//員工結構體類型
emp := Employee{"ABC", 19078}
//在這里,它是指向結構體的指針
pts := &emp
fmt.Println(pts)
//訪問結構字段(員工的姓名)
//使用指針,但是這里我們沒有使用顯式解引用
fmt.Println(pts.name)
//通過顯式使用解引用
//表示結果與上面相同
fmt.Println((*pts).name)
}輸出:
&{ABC 19078}
ABC
ABC示例2:您還可以使用指針,如下所示修改結構成員或結構字面量的值:
package main
import "fmt"
//定義結構體
type Employee struct {
name string
empid int
}
func main() {
//創(chuàng)建的實例
//員工結構類型
emp := Employee{"ABC", 19078}
//在這里,它是指向結構體的指針
pts := &emp
//顯示值
fmt.Println(pts)
//更新name的值
pts.name = "XYZ"
fmt.Println(pts)
}輸出:
&{ABC 19078}
&{XYZ 19078}