gpt4 book ai didi

go - 如何从结构中指定我们想要使用的字段?

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

我有一个由多个相同类型的字段组成的结构。

type test struct{
A int
B int
C int
}

我想对这三个字段应用一个函数来做同样的事情,但我每次只想在一个字段上做。

function something (toto test, cond int) {
if (cond == 1){
// then we will use A for the rest of the function
}else if (cond == 2) {
// then we use B etc....
} ...

for mail, v := range bdd {
if _, ok := someMap[v.A]; !ok { // use v.A or V.B or V.C
delete(bdd, mail)
}
...
}

...
}

这个函数真的很长,让我感到困扰的是仅仅为了改变的一行就将代码复制了 3 次。我尝试了反射包。我认为参与其中是一个危险的想法。

最佳答案

在您的情况下,我会使用 map 而不是 struct,但如果确实需要 struct,您可以使用 reflect 包。

v := reflect.ValueOf(x)

for i := 0; i < v.NumField(); i++ {
fmt.Printf("%v", v.Field(i).Interface())
}

关于go - 如何从结构中指定我们想要使用的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53448467/

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