Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射
驗(yàn)證字段Z是否存在于結(jié)構(gòu)類型Test中
下面的代碼片段聲明了具有字段A、B和C的結(jié)構(gòu)類型Test。我們需要驗(yàn)證字段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)體切片或映射的詳細(xì)內(nèi)容,更多關(guān)于Go結(jié)構(gòu)體檢查創(chuàng)建的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
GO 使用Webhook 實(shí)現(xiàn)github 自動化部署的方法
這篇文章主要介紹了GO 使用Webhook 實(shí)現(xiàn)github 自動化部署的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Go?gRPC進(jìn)階教程gRPC轉(zhuǎn)換HTTP
這篇文章主要為大家介紹了Go?gRPC進(jìn)階教程gRPC轉(zhuǎn)換HTTP教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Golang使用channel實(shí)現(xiàn)數(shù)據(jù)匯總的方法詳解
這篇文章主要為大家詳細(xì)介紹了在并發(fā)編程中數(shù)據(jù)匯總的問題,并探討了在并發(fā)環(huán)境下使用互斥鎖和通道兩種方式來保證數(shù)據(jù)安全性的方法,需要的可以參考一下2023-05-05
Go語言多人聊天室項(xiàng)目實(shí)戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了Go語言多人聊天室項(xiàng)目實(shí)戰(zhàn),實(shí)現(xiàn)單撩或多撩等多種功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08

