Go的空接口

空接口(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{})
相關文章
相關標籤/搜索