golang筆記 struct體遍歷

2021-09-29 20:54:37 字數 838 閱讀 7847

由於文章由markdown的方式編寫, 部分鏈結與顯示可能存在問題, 大家可以移步到github源檢視

文章由啟發, 進行展開發散.

利用reflect包對struct結構進行遍歷, 對於學習golang有很大的幫助:

完整測試**如下, 可以用以輸出完整的struct成員, 增加遞迴函式可以很容易的做到多種型別輸出:

package main

import (

"fmt"

"reflect"

)type event struct

type logs struct

func main() , },

} t := reflect.typeof(u)

v := reflect.valueof(u)

for k := 0; k < t.numfield(); k++

}} }

}

編譯結果:

addr -- qwrtyuiopasdfghjkl

hash -- zxcvbnm

height -- 1011

events -- [ ]

main.event --

topic -- 123456789

data -- 987654321

topic -- zz123456789

data -- zz987654321

對於struct巢狀struct的處理方式:

if v.field(k).kind() == reflect.slice 

}}

Golang 入門 結構體 struct

go 通過型別別名 alias types 和結構體的形式支援使用者自定義型別,或者叫定製型別。試圖表示乙個現實世界中的實體。結構體由一系列命名的元素組成,這些元素又被稱為字段,每個欄位都有乙個名稱和乙個型別。結構體的目的就是把資料聚集在一起,以便能夠更加便捷地操作這些資料。結構體的概念在 c 語言...

Golang學習筆記(六) struct

struct struct,一組欄位的集合,類似其他語言的class 放棄了大量包括繼承在內的物件導向特性,只保留了組合 composition 這個最基礎的特性 1.宣告及初始化 複製 如下 type person struct 初始化 func main fmt.println p1.name ...

Golang空結構體struct 用途,你知道嗎

golang 空結構體 struct 可以用來節省記憶體 a struct println unsafe.sizeof a output 0 理由如下 本例說明在map裡節省資源的用途 set make map string struct for value range string fmt.pri...