以下のコードを見ていただいたほうが早いです
playground
package main import ( "fmt" "reflect" ) func main() { myMap := map[string]interface{}{ "abc": 1, "def": map[string]int{"hij": 2, "lmn": 3}, } v := reflect.ValueOf(myMap) keys := v.MapKeys() for _, key := range keys { field := v.MapIndex(key) fmt.Printf("key = %v, value= %v, kind=%v\n", key, field, field.Kind()) } }
いかが出力です
key = abc, value= 1, kind=interface key = def, value= map[hij:2 lmn:3], kind=interface
任意の構造体を走査するロジックを作っているのですがmapの処理で詰まってしまいました。
上記のようにkind
がinterface
になってしまうのです。確かにmymapの定義は値の部分がinterfaceではありますが
走査したい関係上int or map[string]int
になってほしいのです。
どうすればいいのか教えてください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。