介面類型1.介面類型具體描述了一系列方法的集合,實現這些方法的具體類型是這個介面類型的實例2.一個類型如果擁有一個介面需要的所有方法,那麼這個類型就實現了這個介面 ...
介面類型
1.介面類型具體描述了一系列方法的集合,實現這些方法的具體類型是這個介面類型的實例
2.一個類型如果擁有一個介面需要的所有方法,那麼這個類型就實現了這個介面
package main import ( "fmt" ) //定義一個介面類型Person type Person interface { //描述了一個需要實現的Say方法,返回的類型是error Say() error } //定義一個類型 type Tsh struct{} //給類型定義獨占方法,參數返回值和Person介面要求的一樣,就意味著實現了該介面 func (t *Tsh) Say() error { fmt.Println("我是tsh") return nil } func main() { //實例化 tsh := Tsh{} //直接調用實例的方法 tsh.Say() //該測試方法要求傳入Person類型,因為我的Tsh實現了Person介面,所以我的Tsh也可以傳入 test(&tsh) } //測試方法要求傳入Person類型 func test(p Person) { p.Say() }