1. 程式人生 > >Go的空接口

Go的空接口

args inter string code fun struct {} ring println

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

Go的空接口