Go的空接口
阿新 • • 發佈:2018-10-06
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的空接口