go - 使用反射模拟 struct.field
问题描述
当字段是接口类型时,如何获得与reflect.TypeOf(struct.field)
使用时相同的值?FieldByName
如此处所示,如果结构字段是接口,reflect.TypeOf(struct.field)
则给我具体类型,但reflect.ValueOf(struct).FieldByName("field").Type()
给我接口。struct.field
如果我只有struct
和,是否可以使用反射获取存储的具体类型"field"
?
解决方案
你应该使用Elem()
// Elem 返回接口 v 包含的值
提取类型的正确方法
reflect.ValueOf(h).Elem().FieldByName("i").Elem().Type().String()
推荐阅读
- python - ModuleNotFoundError:没有名为“statsmodels.miscmodels.ordinal_model”的模块
- c++ - 解决动态问题中的分段错误
- google-sheets - Google Sheet API 中从未设置过 TextRotation 角度
- excel - 使用 excel 或表格公式计算即将到来的任务日期,直到超过系统日期
- java - 使用 OpenCV 查找带有内部矩形的矩形
- javascript - Angular Set Input Cursor to next input,PS:下一个输入标签将动态添加到上一个输入点击的keyEnter上
- visual-studio-code - VScode 主题安装演练
- mongodb - MongoDB $facet 聚合
- import - 即使已导入包也未定义
- python - Jupyter Notebook 错误:元组索引超出范围