Object
implementsObjectinterface{}
interface{}

我们可以将其指向基本类型:

var v1 interface{} = 1 // 将 int 类型赋值给 interface{} 
var v2 interface{} = "学院君" // 将 string 类型赋值给 interface{} 
var v3 interface{} = true  // 将 bool 类型赋值给 interface{}

也可以将其指向复合类型:

var v4 interface{} = &v2 // 将 *interface{} 类型(指针)赋值给 interface{} 
var v5 interface{} = []int{1, 2, 3}  // 将切片类型赋值给 interface{} 
var v6 interface{} = struct{   // 将自定义类型赋值给 interface{}
    id int
    name string
}{1, "学院君"} 
interface{}
func Printf(fmt string, args ...interface{})
func Println(args ...interface{}) ...

此外,我们还可以基于空接口来实现类型判断和转化:

var myarr = [3]int{1, 2, 3}
value, ok := interface{}(myarr).([3]int)
interface{}myarrx.(T)xTT[3]intxToktruevalueTokfalsevalueT
struct{}struct{}{}0struct{}