天天看點

24.Go面向對象-空接口

24.Go面向對象-空接口

8 空接口

空接口(​

​interface{}​

​)不包含任何的方法,正因為如此,所有的類型都實作了空接口,是以空接口可以存儲任意類型的數值。

例如:

// 空接口萬能類型,儲存任意類型的值
var i interface{} = 1
fmt.Println("i = ", i)

i = "abc"
fmt.Println("i = ", i)      

當函數可以接受任意的對象執行個體時,我們會将其聲明為​

​interface{}​

​​,最典型的例子是标準庫​

​fmt​

​​中​

​PrintXXX​

​系列的函數,例如:

func Printf(format string, a ...interface{}) (n int, err error) {
 return Fprintf(os.Stdout, format, a...)
}

func Println(a ...interface{}) (n int, err error) {
 return Fprintln(os.Stdout, a...)
}      

如果自己定義函數,可以如下:

func Test(arg ...interface{}) {
   
}