/

Go中的結構體

Go中的結構體

結構體是一種包含一個或多個變量的類型。它類似於一組變量,我們稱之為字段。這些字段可以具有不同的類型。

下面是一個結構體定義的示例:

1
2
3
4
type Person struct {
Name string
Age int
}

請注意,我們使用大寫字母命名字段,否則這些字段將對包私有。當您將結構體傳遞給其他包提供的函數(例如用於處理 JSON 或數據庫的函數)時,將無法訪問這些字段。

一旦我們定義了結構體,我們可以使用該類型初始化變量:

1
flavio := Person{"Flavio", 39}

並且我們可以使用點語法訪問個別的字段:

1
2
flavio.Age // 39
flavio.Name // "Flavio"

您還可以以以下方式從結構體初始化新變量:

1
flavio := Person{Age: 39, Name: "Flavio"}

這使您只能初始化一個字段:

1
flavio := Person{Age: 39}

或者甚至可以在不指定任何值的情況下初始化它:

1
2
3
4
5
flavio := Person{}

// 或者

var flavio Person

然後再設置其值:

1
2
flavio.Name = "Flavio"
flavio.Age = 39

結構體非常有用,因為您可以將不相關的數據進行分組,並將其傳遞給/從函數中,存儲在切片中等等。

定義後,結構體就像intstring一樣是一種類型,這意味著您還可以在其他結構體中使用它:

1
2
3
4
5
6
7
8
9
type FullName struct {
FirstName string
LastName string
}

type Person struct {
Name FullName
Age int
}

tags: [“Go”, “struct”, “type”, “field”]