我有一个像go-spew这样的数据结构:
([]interface {}) (len=1 cap=1) {
(string) (len=1938) "value"
}
类型为[]interface {}
如何使用value
打印此fmt
,或以某种方式访问它以便我可以使用它。
答案 0 :(得分:1)
您可以将类型断言或反射工作与通用interface{}
一起用于基础类型。如何执行此操作取决于您的特定用例。如果您的示例中interface{}
可能是[]interface{}
,则可以:
if sl, ok := thing.([]interface{}); ok {
for _, val := range sl {
fmt.Println(val)
// Or if needed, coerce val to its underlying type, e.g. strVal := val.(string)
}
}
如果你不能对基础类型做出假设,你需要使用reflect
做一些黑魔法。