go結構體初始化 Go語言初始化結構體的成員變數

2021-10-13 04:10:06 字數 960 閱讀 2528

結構體在例項化時可以直接對成員變數進行初始化,初始化有兩種形式分別是以字段「鍵值對」形式和多個值的列表形式,鍵值對形式的初始化適合選擇性填充欄位較多的結構體,多個值的列表形式適合填充欄位較少的結構體。

使用「鍵值對」初始化結構體

結構體可以使用「鍵值對」(key value pair)初始化字段,每個「鍵」(key)對應結構體中的乙個字段,鍵的「值」(value)對應字段需要初始化的值。

鍵值對的填充是可選的,不需要初始化的字段可以不填入初始化列表中。

結構體例項化後字段的預設值是字段型別的預設值,例如 ,數值為 0、字串為 ""(空字串)、布林為 false、指標為 nil 等。

1) 鍵值對初始化結構體的書寫格式

鍵值對初始化的格式如下:

ins := 結構體型別名

初始化匿名結構體

匿名結構體沒有型別名稱,無須通過 type 關鍵字定義就可以直接使用。

1) 匿名結構體定義格式和初始化寫法

匿名結構體的初始化寫法由結構體定義和鍵值對初始化兩部分組成,結構體定義時沒有結構體型別名,只有欄位和型別定義,鍵值對初始化部分由可選的多個鍵值對組成,如下格式所示:

ins := struct

**說明如下:

第 8 行,定義 printmsgtype() 函式,引數為 msg,型別為*struct,因為型別沒有使用 type 定義,所以需要在每次用到的地方進行定義。

第 14 行,使用字串格式化中的%t動詞,將 msg 的型別名列印出來。

第 20 行,對匿名結構體進行例項化,同時初始化成員。

第 21 和 22 行,定義匿名結構體的字段。

第 24 和 25 行,給匿名結構體欄位賦予初始值。

第 28 行,將 msg 傳入 printmsgtype() 函式中進行函式呼叫。

匿名結構體的型別名是結構體包含字段成員的詳細描述,匿名結構體在使用時需要重新定義,造成大量重複的**,因此開發中較少使用。

GO語言初始化順序

在go程式中,初始化的幾個結構通常為 包 package 常量 const 變數 var init 和main 接下來我說一下這幾個結構的執行順序 go 程式的初始化順序見下圖 init main 是 go 語言中的保留函式,兩個函式在 go 語言中的區別如下 兩個函式在定義時不能有任何的引數和返回...

結構體初始化 指定初始化

參考 c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 st...

Go語言初始化結構體的幾種方式

結構體在例項化時可以直接對成員變數進行初始化,初始化有兩種形式分別是以字段 鍵值對 形式和多個值的列表形式,鍵值對形式的初始化適合選擇性填充欄位較多的結構體,多個值的列表形式適合填充欄位較少的結構體。使用 鍵值對 初始化結構體 結構體可以使用 鍵值對 key value pair 初始化字段,每個 ...