Golang中的結(jié)構(gòu)是用戶定義的類型,它允許我們在一個單元中創(chuàng)建一組不同類型的元素。任何具有一組屬性或字段的真實實體都可以表示為結(jié)構(gòu)。
在Go語言中,允許您創(chuàng)建匿名結(jié)構(gòu)。匿名結(jié)構(gòu)是不包含名稱的結(jié)構(gòu)。當(dāng)您要創(chuàng)建一次性可用結(jié)構(gòu)時,它很有用。您可以使用以下語法創(chuàng)建匿名結(jié)構(gòu):
variable_name := struct{ // fields }{// Field_values}
讓我們借助示例來討論這個概念:
//匿名結(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就會自動使用該類型作為字段的名稱。您可以使用以下語法創(chuàng)建結(jié)構(gòu)的匿名字段:
type struct_name struct{ int bool float64 }
重要事項:
在結(jié)構(gòu)中,不允許創(chuàng)建兩個或多個相同類型的字段,如下所示:
type student struct{ int int }
如果嘗試這樣做,則編譯器將拋出錯誤。
允許將匿名字段與命名字段組合,如下所示:
type student struct{ name int price int string }
讓我們借助一個示例來討論匿名字段概念:
package main import "fmt" //創(chuàng)建一個結(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("套餐價格 : ", value.float64) }
輸出:
入學(xué)人數(shù) : 123 學(xué)生姓名 : Bud 套餐價格 : 8900.23