Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射
驗證字段Z是否存在于結(jié)構(gòu)類型Test中
下面的代碼片段聲明了具有字段A、B和C的結(jié)構(gòu)類型Test。我們需要驗證字段Z是否存在于結(jié)構(gòu)類型Test中。
示例代碼:
package main import ( "log" "reflect" ) func main() { type test struct { A bool B bool C bool } v := new(test) metaValue := reflect.ValueOf(v).Elem() for _, name := range []string{"A", "C", "Z"} { field := metaValue.FieldByName(name) if field == (reflect.Value{}) { log.Printf("Field %s not exist in struct", name) } } }
輸出:
2009/11/10 23:00:00 Field Z not exist in struct
創(chuàng)建結(jié)構(gòu)體切片
示例代碼:
package main import ( "fmt" ) type Widget struct { id int attrs []string } func main() { widgets := []Widget{ Widget{ id: 10, attrs: []string{"blah", "foo"}, }, Widget{ id: 11, attrs: []string{"foo", "bar"}, }, Widget{ id: 12, attrs: []string{"xyz"}, }, } for _, j := range widgets { fmt.Printf("%d ", j.id) for _, y := range j.attrs { fmt.Printf(" %s ", y) } fmt.Println() } }
輸出:
10 blah foo
11 foo bar
12 xyz
創(chuàng)建結(jié)構(gòu)體映射
示例代碼:
package main import "fmt" type Emp struct { x int y []string } func main() { var list = map[string]*Emp{"e1": {1001, []string{"John", "US"}}} e := new(Emp) e.x = 1002 e.y = []string{"Rock", "UK"} list["e2"] = e fmt.Println(list["e1"]) fmt.Println(list["e2"]) }
輸出:
&{1001 [John US]}
&{1002 [Rock UK]}
以上就是Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射的詳細內(nèi)容,更多關于Go結(jié)構(gòu)體檢查創(chuàng)建的資料請關注腳本之家其它相關文章!
相關文章
go從指定的URL下載圖片并保存到本地的代碼實現(xiàn)
這段代碼定義了一個名為 downloadImage 的函數(shù),其目的是從指定的URL下載圖片并保存到本地文件系統(tǒng),本文是對代碼功能的詳細描述,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-08-08Go語言實現(xiàn)可選參數(shù)的方法小結(jié)
這篇文章主要為大家詳細介紹了Go語言實現(xiàn)可選參數(shù)的一些常見方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02一文帶你了解Golang中select的實現(xiàn)原理
select是go提供的一種跟并發(fā)相關的語法,非常有用。本文將介紹?Go?語言中的?select?的實現(xiàn)原理,包括?select?的結(jié)構(gòu)和常見問題、編譯期間的多種優(yōu)化以及運行時的執(zhí)行過程2023-02-02Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)
最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標準庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧2021-05-05Go語言實現(xiàn)基于websocket瀏覽器通知功能
這篇文章主要介紹了Go語言實現(xiàn)基于websocket瀏覽器通知功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07