go中struct取key的值

hhxx
  • 569

一个很简单的问题,之前写python和js没有想过会卡主,就是定义个struct
type B struct {

A string
B string 

}
b := B{}
如何支持b["A"]取到b.A的值呢,求解答谢谢!

回复
阅读 9.8k
2 个回答

如果想用字符串做key取struct的话,要用reflect 映射,就可以用字符串去获取struct对应的值。b["A"]这种取法只有map可以。

type MyStruct struct {  
    N int  
}  
n := MyStruct{ 1 }  
   
// get  
immutable := reflect.ValueOf(n)  
val := immutable.FieldByName("N").Int()  
fmt.Printf("N=%d\n", val) // prints 1

不可以这样的 b["A"] 这样是map取值的写法

map
结构体

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏