Go的空接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go的空接口相关的知识,希望对你有一定的参考价值。

空接口(interface{})不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。它有点类似于C语言的void *类型。

????var v1 interface{} = 1     // 将int类型赋值给interface{}
????var v2 interface{} = "abc" // 将string类型赋值给interface{}
????var v3 interface{} = &v2   // 将*interface{}类型赋值给interface{}
????var v4 interface{} = struct{ X int }{1}
????var v5 interface{} = &struct{ X int }{1}

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

以上是关于Go的空接口的主要内容,如果未能解决你的问题,请参考以下文章

6.4 Go语言中的空接口

6.4 Go语言中的空接口

6.4 Go语言中的空接口

Android,从其他片段返回的空列表视图

片段中的 EditText 上的空指针异常 [重复]

php如何实现多继承?