亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 interface{} 轉換為 []interface{}

將 interface{} 轉換為 []interface{}

Go
慕森王 2023-06-05 17:21:26
如何將 interface{} 轉換為 []interface{} ?rt := reflect.ValueOf(raw)switch rt.Kind() {case reflect.Slice:    src := raw.([]interface{}) //this operation errors out    for _,_ :=  range src {        //some operation    }  }我得到一個錯誤panic: interface conversion: interface {} is []string, not []interface {} 我想讓這個方法足夠通用以處理任何類型,而不是固定類型。我是 Go 的新手,我一直被這個問題困擾,很可能我做錯了。有什么建議我怎樣才能解決這個問題?編輯: 一些操作是json.Marshal返回字節數組。我真正想做的是: 我有一個接收接口類型的函數,如果它是一個數組/切片,那么我想在每個項目上運行 json.Marshal 而不是將它作為一個整體應用?;旧?,如果第一級對象是數組,我會嘗試分解 JSON blob,是的,它需要是通用的。
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

如錯誤消息所述,a[]string不是[]interface{}.?

一般使用反射 API 來執行此操作:

v := reflect.ValueOf(raw)

switch v.Kind() {

case reflect.Slice:

? ? for i := 0; i < v.Len(); i++ {

? ? ? ? elem := v.Index(i).Interface()

? ? ? ? // elem is an element of the slice

? ? }

}

在 Playground 上運行它。



查看完整回答
反對 回復 2023-06-05
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號