当前位置: 代码迷 >> 综合 >> 空接口 interface{ }
  详细解决方案

空接口 interface{ }

热度:26   发布时间:2024-02-23 16:19:45.0

空interface(interface{})不包含任何的method,正因为如此,所有的类型都实现了空interface。

空interface对于描述起不到任何的作用(因为它不包含任何的method),但是空interface在我们需要存储任意类型的数值的时候相当有用,因为它可以存储任意类型的数值。

有点类似于C语言的void*类型。

 

// 定义 a 为空接口
var a interface{}
var i int = 5
s := "Hello world"
// a 可以存储任意类型的数值
a = i
a = s


一个函数把interface{}作为参数,那么他可以接受任意类型的值作为参数,如果一个函数返回interface{},那么也就可以返回任意类型的值。是不是很有用啊!

 

例如,用于XML处理文本,解析XML文件的一个函数:

func Unmarshal(data []byte, v interface{}) error

data:xml数据流,

v:存储的对应类型

  相关解决方案