go語言之類型與接口的關係

go語言的類型和接口的之間是一對多(或多對一)的關係
以下爲概念實例生產理解,便於以後在複雜的類型與接口環境中使用

一,一個類型可以實現多個接口 而接口間彼此獨立,不知道對方的實現。

type HandlerInterface interface {
   OnRequset()
   IsRequestOk() bool
}

type Test2 struct{//... 
} 

type Test struct{
   ID int     //普通結構
 
   start()string    //接口函數
   HandlerInterface //接口函數
 
   Test2    //結構嵌套
} 

func NewTest()*Test{//...
  return &Test{}
}

func(t *Test)OnRequset{//...
}

func(t *Test)IsRequestOk{//...
}

二,一個接口可以有多個結構實現

一個接口的方法,不一定需要由一個類型完全實現,
接口的方法可以通過在類型中嵌入其他類型或者結構體來實現。
也就是說,使用者並不關心某個接口的方法是通過一個類型完全實現的,
還是通過多個結構嵌入到一個結構體中拼湊起來共同實現的。
//老司機開車  這個接口函數可不是一個結構體完成的

type Car interface {
    Start()    // 開啓
    close()string // 關閉
}
// 熄火
type Close struct {//...
}
// 實現Car 的close()方法
func (c *Close) close()string {//...
}
// 人爲
type People struct {
    Close  // 嵌入日誌器
}
// 實現Car的Start()方法
func (p *People) Start() {//...
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章