引言
圍繞具體細節構建抽象是編程語言可以提供給開發人員的最好工具。結構體允許Go開發人員描述Go程序運行的世界。結構體允許我們討論Address
,而不是描述Street
、 City
或PostalCode
的字符串。它們是我們努力告訴未來開發人員(包括我們自己)哪些數據對我們的Go程序是重要的,以及未來的代碼應該如何適當地使用這些數據的自然紐帶。結構體有幾種不同的定義和使用方式。在本教程中,我們將了解這些技術中的每一種。
定義結構體
結構體的工作方式類似于你可能會使用的紙質表格,例如,用于報稅。紙質表單可能有一些字段,用于存儲像您的姓和名這樣的文本信息。除了文本框之外,表單還可能有復選框來表示布爾值,如“已婚”或“單身”,或者日期框來表示出生日期。類似地,結構體將不同的數據片段收集在一起,并以不同的字段名組織它們。當你用一個新的結構體初始化一個變量時,就好像你復印了一個表單,讓它隨時可以填寫一樣。
要創建新的結構體,您必須首先向Go提供一個描述該結構體包含的字段的藍圖。這個結構體定義通常以關鍵字type
開始,后面跟著結構體的名稱。在這之后,使用struct
關鍵字,后跟一對大括號{}
來聲明結構體將包含的字段。一旦定義了這個結構體,就可以聲明使用這個結構體定義的變量。下面的例子定義并使用了一個結構體:
package mainimport "fmt"type Creature struct {Name string
}func main() {c := Creature{Name: "Sammy the Shark",}fmt.Println(c.Name)