我有以下代码片段,经过一些反思后,它将结构的字段设置为字符串值 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))
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消