用interfce定義行為(範例)

範例

已經有收藏很多文章LINK介紹如何定義了,這邊直接進入練習如何定義行為的幾種差異。

範例程式

  • 定義一般類型(string)與其方法

  • 定義Stringer 介面

  • 定義person類型與其方法與定義Person 介面

// 綁定的NewXXX方法(xxx) interfacr{
//    ....xxxxx
//   return T{XXX:xxx...} //struct
//}

func NewPersonI(name string) Person { //回傳是一個Person介面
	return person{Name: name} //會檢查對象struct person是否具有Person(interface) 的方法
}
//對象struct 實作方法
func (s person) MyName() string {
	return s.Name
}
  • 定義SuperMan 類型與其方法與定義SuperMan 介面

  • 定義一個方法showTypeAndDoTheirFunc(any interface{})可以接受任何類型

    • 類型斷言判斷效果與執行各類型的方法

  • Main宣告介面或是類型的方式不同顯示

補充

你可以使用介面去做物件的操作,NewXXX 回傳的是一個介面,再用這接口去做操作.

Last updated