Golang帮助反思获得价值



我是一个新手。我想知道我如何在Go中使用反射从中获得映射的值。

<>之前 type url_mappings struct{ mappings map[string]string } func init() { var url url_mappings url.mappings = map[string]string{ "url": "/", "controller": "hello"} 之前

谢谢

import "reflect"
v := reflect.ValueOf(url)
f0 := v.Field(0) // Can be replaced with v.FieldByName("mappings")
mappings := f0.Interface()

mappings的类型是接口{},因此您不能将其用作映射。要使真正的mappings的类型为map[string]string,您需要使用一些类型断言:

realMappings := mappings.(map[string]string)
println(realMappings["url"])

由于重复的map[string]string,我将:

type mappings map[string]string

然后你可以:

type url_mappings struct{
    mappings // Same as: mappings mappings
}

相关内容

  • 没有找到相关文章

最新更新