gpt4 book ai didi

go - 一次检查golang中的所有数据键

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:38 24 4
gpt4 key购买 nike

我有以下代码:

type DisplayObject struct {
ID string `json:"id,omitempty" bson:"id"`
URI string `json:"uri,omitempty" bson:"uri"`
Display string `json:"display,omitempty" bson:"display"`
}

if DisplayObject.ID != "" {
// do something
}

if DisplayObject.URI != "" {
// do something
}

if DisplayObject.Display != "" {
// do something
}

在 javascript 中我会做

for (var key in DisplayObject) {
if (DisplayObject.hasOwnProperty(key)) {
// do something
}
}

如何在 go 中通过对象完成这个 for 循环?

最佳答案

您可以使用反射来完成类似的事情:

package main

import (
"fmt"
"reflect"
)

type DisplayObject struct {
ID string `json:"id,omitempty" bson:"id"`
URI string `json:"uri,omitempty" bson:"uri"`
Display string `json:"display,omitempty" bson:"display"`
}

func main() {
displayObj := &DisplayObject{ID: "foo"}
s := reflect.ValueOf(displayObj).Elem()
for i := 0; i < s.NumField(); i++ {
fieldName := s.Type().Field(i).Name
fieldValue := s.Field(i).String()
fmt.Printf("%s: %s\n", fieldName, fieldValue)
// do something with the field data
}
}

关于go - 一次检查golang中的所有数据键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com