空接口(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{})