Go語言中的結構體

2021-10-02 12:41:02 字數 1260 閱讀 6226

結構體中字段可以沒有名字,即匿名字段

struct中的每個字段,寫上乙個tag。這個tag可以通過反射的機制獲取到,最常用的場景就是json序列化和反序列化

package main

import

("encoding/json"

"fmt"

)type student struct

func

main()

// 把這個結構體打包

data, err := json.

marshal

(stu)

if err !=

nil fmt.

println

(string

(data)

)}

輸出:(輸出的字段變為tag欄位了)

var stu student

var stu *student =

new(student)

var stu *student =

&student

type student struct

func

main()

var stu2 =student

fmt.

println

(stu)

fmt.

println

(stu1)

fmt.

println

(stu2)

}

type a struct

func

(t a)

test()

var t a

t.test

()

- 方法和函式的區別

函式呼叫: function(variable, 引數列表)

方法:variable.function(引數列表)

package main

import

("fmt"

"time"

)func

main03()

)//資料為空沒有意義 通知作用

gofunc()

()fmt.

println

("主函式執行"

)<-ch

fmt.

println

("主函式執行完成"

)}

go語言中結構體與json

go語言中使用marshal函式實現結構體json化,需要有一下兩點注意 因為json化是在其他函式中完成,因此需要將結構體中的成員大寫,這樣才能在生成的結構體中有對應的元素 在結構體後面,如果有需要改寫欄位名稱,需要使用煩引號,指定對應的欄位名稱,支援多指定如json name db dbname...

go語言中結構體標籤的語法

原文 通過反射獲取結構體的成員型別 通過反射獲取值資訊 提示結構體標籤 struct tag 類似於 c 中的特性 attribute c 允許在類 字段 方法等前面新增 attribute,然後在反射系統中可以獲取到這個屬性系統。例如 conditional debug public static...

go語言結構體

go語言陣列可以儲存同一型別的資料 但在結構體中我們可以為不同項定義不同的資料型別 結構體是由一系列具有相同的型別或者不同型別的資料構成的資料集合 1.定義結構體 結構體定義需要使用type和struct語句。struct語句定義乙個新的資料型別,結構體中有乙個或者多個成員。type語句設定了結構體...