本篇文章給大家分享的是有關(guān)怎么在go語言中初始化結(jié)構(gòu)體的成員變量,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、恭城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為恭城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
初始化方法:1、使用“ins := 結(jié)構(gòu)體類型名{字段1:值,字段2:值,…}”語句初始化,適合選擇性填充字段較多的結(jié)構(gòu)體;2、使用“ins := 結(jié)構(gòu)體類型名{字段1的值,字段2的值,…}”語句初始化,適合填充字段較少的結(jié)構(gòu)體。
結(jié)構(gòu)體在實例化時可以直接對成員變量進(jìn)行初始化,初始化有兩種形式分別是以字段“鍵值對”形式和多個值的列表形式,鍵值對形式的初始化適合選擇性填充字段較多的結(jié)構(gòu)體,多個值的列表形式適合填充字段較少的結(jié)構(gòu)體。
使用“鍵值對”初始化結(jié)構(gòu)體
結(jié)構(gòu)體可以使用“鍵值對”(Key value pair)初始化字段,每個“鍵”(Key)對應(yīng)結(jié)構(gòu)體中的一個字段,鍵的“值”(Value)對應(yīng)字段需要初始化的值。
鍵值對的填充是可選的,不需要初始化的字段可以不填入初始化列表中。
結(jié)構(gòu)體實例化后字段的默認(rèn)值是字段類型的默認(rèn)值,例如 ,數(shù)值為 0、字符串為 ""(空字符串)、布爾為 false、指針為 nil 等。
1) 鍵值對初始化結(jié)構(gòu)體的書寫格式
鍵值對初始化的格式如下:
ins := 結(jié)構(gòu)體類型名{ 字段1: 字段1的值, 字段2: 字段2的值, … }
下面是對各個部分的說明:
結(jié)構(gòu)體類型:定義結(jié)構(gòu)體時的類型名稱。
字段1、字段2:結(jié)構(gòu)體成員的字段名,結(jié)構(gòu)體類型名的字段初始化列表中,字段名只能出現(xiàn)一次。
字段1的值、字段2的值:結(jié)構(gòu)體成員字段的初始值。
鍵值之間以:
分隔,鍵值對之間以,
分隔。
2) 使用鍵值對填充結(jié)構(gòu)體的例子
下面示例中描述了家里的人物關(guān)聯(lián),正如兒歌里唱的:“爸爸的爸爸是爺爺”,人物之間可以使用多級的 child 來描述和建立關(guān)聯(lián),使用鍵值對形式填充結(jié)構(gòu)體的代碼如下:
type People struct { name string child *People } relation := &People{ name: "爺爺", child: &People{ name: "爸爸", child: &People{ name: "我", }, }, }
代碼說明如下:
第 1 行,定義 People 結(jié)構(gòu)體。
第 2 行,結(jié)構(gòu)體的字符串字段。
第 3 行,結(jié)構(gòu)體的結(jié)構(gòu)體指針字段,類型是 *People。
第 6 行,relation 由 People 類型取地址后,形成類型為 *People 的實例。
第 8 行,child 在初始化時,需要 *People 類型的值,使用取地址初始化一個 People。
提示:結(jié)構(gòu)體成員中只能包含結(jié)構(gòu)體的指針類型,包含非指針類型會引起編譯錯誤。
使用多個值的列表初始化結(jié)構(gòu)體
Go語言可以在“鍵值對”初始化的基礎(chǔ)上忽略“鍵”,也就是說,可以使用多個值的列表初始化結(jié)構(gòu)體的字段。
1) 多個值列表初始化結(jié)構(gòu)體的書寫格式
多個值使用逗號分隔初始化結(jié)構(gòu)體,例如:
ins := 結(jié)構(gòu)體類型名{ 字段1的值, 字段2的值, … }
使用這種格式初始化時,需要注意:
必須初始化結(jié)構(gòu)體的所有字段。
每一個初始值的填充順序必須與字段在結(jié)構(gòu)體中的聲明順序一致。
鍵值對與值列表的初始化形式不能混用。
2) 多個值列表初始化結(jié)構(gòu)體的例子
下面的例子描述了一段地址結(jié)構(gòu),地址要求具有一定的順序,例如:
type Address struct { Province string City string ZipCode int PhoneNumber string } addr := Address{ "四川", "成都", 610000, "0", } fmt.Println(addr)
運行代碼,輸出如下:
{四川 成都 610000 0}
以上就是怎么在go語言中初始化結(jié)構(gòu)體的成員變量,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。