Go中的結構體
結構體是一種包含一個或多個變量的類型。它類似於一組變量,我們稱之為字段。這些字段可以具有不同的類型。
下面是一個結構體定義的示例:
1 | type Person struct { |
請注意,我們使用大寫字母命名字段,否則這些字段將對包私有。當您將結構體傳遞給其他包提供的函數(例如用於處理 JSON 或數據庫的函數)時,將無法訪問這些字段。
一旦我們定義了結構體,我們可以使用該類型初始化變量:
1 | flavio := Person{"Flavio", 39} |
並且我們可以使用點語法訪問個別的字段:
1 | flavio.Age // 39 |
您還可以以以下方式從結構體初始化新變量:
1 | flavio := Person{Age: 39, Name: "Flavio"} |
這使您只能初始化一個字段:
1 | flavio := Person{Age: 39} |
或者甚至可以在不指定任何值的情況下初始化它:
1 | flavio := Person{} |
然後再設置其值:
1 | flavio.Name = "Flavio" |
結構體非常有用,因為您可以將不相關的數據進行分組,並將其傳遞給/從函數中,存儲在切片中等等。
定義後,結構體就像int
或string
一樣是一種類型,這意味著您還可以在其他結構體中使用它:
1 | type FullName struct { |
tags: [“Go”, “struct”, “type”, “field”]