您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“如何在go語言中初始化結構體的成員變量”,內容詳細,步驟清晰,細節處理妥當,希望這篇“如何在go語言中初始化結構體的成員變量”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
初始化方法:1、使用“ins := 結構體類型名{字段1:值,字段2:值,…}”語句初始化,適合選擇性填充字段較多的結構體;2、使用“ins := 結構體類型名{字段1的值,字段2的值,…}”語句初始化,適合填充字段較少的結構體。
結構體在實例化時可以直接對成員變量進行初始化,初始化有兩種形式分別是以字段“鍵值對”形式和多個值的列表形式,鍵值對形式的初始化適合選擇性填充字段較多的結構體,多個值的列表形式適合填充字段較少的結構體。
使用“鍵值對”初始化結構體
結構體可以使用“鍵值對”(Key value pair)初始化字段,每個“鍵”(Key)對應結構體中的一個字段,鍵的“值”(Value)對應字段需要初始化的值。
鍵值對的填充是可選的,不需要初始化的字段可以不填入初始化列表中。
結構體實例化后字段的默認值是字段類型的默認值,例如 ,數值為 0、字符串為 ""(空字符串)、布爾為 false、指針為 nil 等。
1) 鍵值對初始化結構體的書寫格式
鍵值對初始化的格式如下:
ins := 結構體類型名{ 字段1: 字段1的值, 字段2: 字段2的值, … }
下面是對各個部分的說明:
結構體類型:定義結構體時的類型名稱。
字段1、字段2:結構體成員的字段名,結構體類型名的字段初始化列表中,字段名只能出現一次。
字段1的值、字段2的值:結構體成員字段的初始值。
鍵值之間以:
分隔,鍵值對之間以,
分隔。
2) 使用鍵值對填充結構體的例子
下面示例中描述了家里的人物關聯,正如兒歌里唱的:“爸爸的爸爸是爺爺”,人物之間可以使用多級的 child 來描述和建立關聯,使用鍵值對形式填充結構體的代碼如下:
type People struct { name string child *People } relation := &People{ name: "爺爺", child: &People{ name: "爸爸", child: &People{ name: "我", }, }, }
代碼說明如下:
第 1 行,定義 People 結構體。
第 2 行,結構體的字符串字段。
第 3 行,結構體的結構體指針字段,類型是 *People。
第 6 行,relation 由 People 類型取地址后,形成類型為 *People 的實例。
第 8 行,child 在初始化時,需要 *People 類型的值,使用取地址初始化一個 People。
提示:結構體成員中只能包含結構體的指針類型,包含非指針類型會引起編譯錯誤。
使用多個值的列表初始化結構體
Go語言可以在“鍵值對”初始化的基礎上忽略“鍵”,也就是說,可以使用多個值的列表初始化結構體的字段。
1) 多個值列表初始化結構體的書寫格式
多個值使用逗號分隔初始化結構體,例如:
ins := 結構體類型名{ 字段1的值, 字段2的值, … }
使用這種格式初始化時,需要注意:
必須初始化結構體的所有字段。
每一個初始值的填充順序必須與字段在結構體中的聲明順序一致。
鍵值對與值列表的初始化形式不能混用。
2) 多個值列表初始化結構體的例子
下面的例子描述了一段地址結構,地址要求具有一定的順序,例如:
type Address struct { Province string City string ZipCode int PhoneNumber string } addr := Address{ "四川", "成都", 610000, "0", } fmt.Println(addr)
運行代碼,輸出如下:
{四川 成都 610000 0}
讀到這里,這篇“如何在go語言中初始化結構體的成員變量”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。