Golang中的結(jié)構(gòu)是用戶定義的類型,它允許我們?cè)谝粋€(gè)單元中創(chuàng)建一組不同類型的元素。任何具有一組屬性或字段的真實(shí)實(shí)體都可以表示為結(jié)構(gòu)。
在Go語言中,允許您創(chuàng)建匿名結(jié)構(gòu)。匿名結(jié)構(gòu)是不包含名稱的結(jié)構(gòu)。當(dāng)您要?jiǎng)?chuàng)建一次性可用結(jié)構(gòu)時(shí),它很有用。您可以使用以下語法創(chuàng)建匿名結(jié)構(gòu):
variable_name := struct{
// fields
}{// Field_values}讓我們借助示例來討論這個(gè)概念:
//匿名結(jié)構(gòu)的概念
package main
import "fmt"
func main() {
// 創(chuàng)建和初始化匿名結(jié)構(gòu)
Element := struct {
name string
branch string
language string
Particles int
}{
name: "詹三",
branch: "開發(fā)部",
language: "C++",
Particles: 498,
}
//顯示匿名結(jié)構(gòu)
fmt.Println(Element)
}輸出:
{詹三 開發(fā)部 C++ 498}在Go結(jié)構(gòu)中,允許創(chuàng)建匿名字段。匿名字段是那些不包含任何名稱的字段,你只需要提到字段的類型,然后Go就會(huì)自動(dòng)使用該類型作為字段的名稱。您可以使用以下語法創(chuàng)建結(jié)構(gòu)的匿名字段:
type struct_name struct{
int
bool
float64
}重要事項(xiàng):
在結(jié)構(gòu)中,不允許創(chuàng)建兩個(gè)或多個(gè)相同類型的字段,如下所示:
type student struct{
int
int
}如果嘗試這樣做,則編譯器將拋出錯(cuò)誤。
允許將匿名字段與命名字段組合,如下所示:
type student struct{
name int
price int
string
}讓我們借助一個(gè)示例來討論匿名字段概念:
package main
import "fmt"
//創(chuàng)建一個(gè)結(jié)構(gòu)匿名字段
type student struct {
int
string
float64
}
// Main function
func main() {
// 將值分配給匿名,學(xué)生結(jié)構(gòu)的字段
value := student{123, "Bud", 8900.23}
fmt.Println("入學(xué)人數(shù) : ", value.int)
fmt.Println("學(xué)生姓名 : ", value.string)
fmt.Println("套餐價(jià)格 : ", value.float64)
}輸出:
入學(xué)人數(shù) : 123 學(xué)生姓名 : Bud 套餐價(jià)格 : 8900.23