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