0
点赞
收藏
分享

微信扫一扫

24.Go面向对象-空接口

24.Go面向对象-空接口

8 空接口

空接口(​​interface{}​​)不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。

例如:

// 空接口万能类型,保存任意类型的值
var i interface{} = 1
fmt.Println("i = ", i)

i = "abc"
fmt.Println("i = ", i)

当函数可以接受任意的对象实例时,我们会将其声明为​​interface{}​​​,最典型的例子是标准库​​fmt​​​中​​PrintXXX​​系列的函数,例如:

func Printf(format string, a ...interface{}) (n int, err error) {
return Fprintf(os.Stdout, format, a...)
}

func Println(a ...interface{}) (n int, err error) {
return Fprintln(os.Stdout, a...)
}

如果自己定义函数,可以如下:

func Test(arg ...interface{}) {

}

​Test()​​函数可以接收任意个数,任意类型的参数。



举报

相关推荐

0 条评论