ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 空接口 空接口(interface{})不包含任何方法,正因为如此,**所有的类型都实现了空接口**,因此空接口可以存储任 意类型的数值. 它有有点类似于C语言的迟到*类型 ~~~ func main() { //空接口万能类型,保存任意类型的值 var i1 interface{} = 1 fmt.Println(i1) i2 := "abc" fmt.Println(i2) i3 := &i1 fmt.Println(i3) var i4 interface{} = struct{ x int }{1} fmt.Println(i4) } ~~~ 当函数可以接收任意的对象实例时,我们会将其声明为interface{},最典型的例子是标准库fmt中PrintXXX系 列的函数,例如 : ~~~ func Println(a ...interface{}) (n int, err error) { return Fprintln(os.Stdout, a...) } func Printf(format string, a ...interface{}) (n int, err error) { return Fprintf(os.Stdout, format, a...) } ~~~