为了账号安全,请及时绑定邮箱和手机立即绑定

接口如何代表Golang中的任何类型

接口如何代表Golang中的任何类型

Go
跃然一笑 2021-04-02 15:18:35
据说可以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。


查看完整回答
反对 回复 2021-04-19
  • 1 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信