當你想實現一個通用函數的時候,會考慮傳入的參數是否是固定類型的,Go正好提供了interface{}類型,它能夠表明任意類型。當你不肯定用什麼類型合適的時候,用它就對了。舉個簡單的例子:運維
type Container struct { elem []interface{} } func (this *Container) Put(v interface{}) { *this = append(*this, elem) } // 取出最後一個元素 func (this *Container) Get() interface{} { ret := (*c)[len(*c)-1] *c = (*c)[:len(*c)-1] return ret } func assertExample() { container := &Container{} container.Put(1) container.Put("Hello") _, ok := container.Get().(int);!ok { fmt.Println("Unable to read an int from container") } }複製代碼