为了账号安全,请及时绑定邮箱和手机立即绑定

使用反射将结构字段动态设置为切片值

使用反射将结构字段动态设置为切片值

Go
慕标5832272 2022-06-21 16:34:04
我有以下代码片段,经过一些反思后,它将结构的字段设置为字符串值                switch fType := v.(type) {                case MyCompositeFlagString:                    s, ok := userInput.(string)                    if !ok {                        log.Printf("Erroneous input type:%T and input value: %v\n", userInput, userInput)                        return ErrUnexpectedInput                    }                    valueField := values.Elem().Field(i).FieldByName("MyFlagString").FieldByName("Value")                    valueField.SetString(s)我在包中没有看到任何SetSlice方法。reflectvalueField当is 类型时如何执行上述操作[]string?
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

Value.SetString()string是一种设置值的便捷方法。由于显而易见的原因,所有类型都没有单独的方法,但是有一个“通用”Value.Set()方法,您可以使用它。您只需reflect.Value从要设置的值中获取 a :

var someSlice ...
valueField.Set(reflect.ValueOf(someSlice))


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信