1
我有自帶的數據結構切片訪問值出去,噴涌看起來像這樣:golang:在接口
([]interface {}) (len=1 cap=1) {
(string) (len=1938) "value"
}
它的類型[]interface {}
的我如何可以打印此value
與fmt
,或以某種方式訪問它,以便我可以使用它。
我有自帶的數據結構切片訪問值出去,噴涌看起來像這樣:golang:在接口
([]interface {}) (len=1 cap=1) {
(string) (len=1938) "value"
}
它的類型[]interface {}
的我如何可以打印此value
與fmt
,或以某種方式訪問它,以便我可以使用它。
您可以使用類型斷言或反射與通用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
。
明白了,謝謝! – jaxxstorm
什麼是上下文?你想如何使用它?如果你想用'fmt'打印它,[你可以這樣做](https://play.golang.org/p/S0n2C0SJDY)。 – Adrian
問題是,它似乎返回一個切片(或至少由[]圍繞的東西)。我試圖覆蓋它,但得到'不能超過值的範圍(類型界面{})' – jaxxstorm
是的,我只是想分配它的東西,所以我可以'fmt'打印。 – jaxxstorm