据说可以interface{}代表Go中的任何类型。例如,让我们考虑一个Marshal函数,encoding/json该函数用于将Go数据结构转换为JSON字符串。它的定义是func Marshal(v interface{}) ([]byte, error) 但是我们将一个结构作为参数传递给它,如下所示。type hello struct{ Message string}data,err:= json.Marshal(hello{Message:'Hello world'})Go如何处理呢?
1 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
答案是运行时反射。
从文档:
包反射实现了运行时反射,从而允许程序处理任意类型的对象。典型的用法是使用静态类型interface {}获取值,并通过调用TypeOf来提取其动态类型信息,该类型将返回Type。
- 1 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消