赞
踩
空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:存储的对应类型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。