go語言學習12(結構體)

2021-09-27 11:18:11 字數 781 閱讀 7939

格式:

type 結構體名稱 struct

結構體如果需要匯出到其他包用,則名字首字母需要大寫;結構體中成員如果需要在其他包中引用,也需要首字母大寫。例如:

type teststruct struct

上面結構體名「teststruct」可以被其他包引用;同理其成員「fieldout」也可以被其他包引用,但成員字段「fieldprivite」則只能在本包使用!

結構體變數賦值的幾種方式:

type teststruct struct

//方式1

t1 := teststruct

//方式2

var t2 teststruct

t2. fieldout = 10

t2. fieldprivite = 20

//方式3

var t3 * teststruct  = new(teststruct)

t3. fieldout = 10

t3. fieldprivite = 20

//方式4

var t4  * teststruct  = &teststruct{}

t4. fieldout = 10

t4. fieldprivite = 20

注意:第三和第四種方式之所以可以直接用「.」來進行指標訪問,是因為go編譯器底層會進行自動轉換!

結構體的每個欄位上還可以加乙個tag標籤,可以通過反射機制來獲取,常見的使用場景就是序列化和反序列化(json.marshal)。如下:

type monster struct

go語言學習筆記 結構體

go語言中,結構體的宣告非常類似c語言,具體定義方法如下 初始化方法有三種 package main import fmt 定義乙個結構體型別 type student struct func main fmt.println s1 s1 2.部分成員初始化,未初始化的變數被賦值為0 s2 stud...

Go語言學習之結構體

介紹 go語言中的基礎資料型別可以表示一些事務的基本屬性,但是我們想表達乙個事務的全部或部分屬性時 比如乙個人,她的姓名 年齡 愛好等屬性 就無法滿足需求了,go語言為我們提供了一種自定義資料型別,可以封裝多個基本資料型別,叫結構體,也就是struct 結構體相當於python裡給類傳的引數,pyt...

Go語言學習(十)Go 語言結構體 Go 併發

go 語言中陣列可以儲存同一型別的資料,但在結構體中我們可以為不同項定義不同的資料型別。結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。1.定義結構體 例項如下 一直出現該報錯的 原因是因為其中語句用的是單引號 2.訪問結構體成員 結構體型別變數使用 struct 關鍵字定義,例項如下 ...