go語言不是傳統的物件導向程式設計語言,沒有類和繼承的概念,但是有非常靈活的介面,可以實現物件導向的特徵,介面提供一種方式來說明物件的行為
type namer inte***ce
複製**
// 1. 定義乙個介面
type shaper inte***ce
type square struct
// 2. square型別指標實現介面中的方法
func
(sq *square)
area
()float32
type rectangle struct
// 3. rectangle型別實現介面中的方法
func
(r rectangle)
area
()float32
func
main
()
q := &square
// 4. 通過介面陣列接收兩個變數
shapes := shaper
fmt.println("looping through shapes for area ...")
for n, _ := range shapes
}複製**
// 1. 定義介面readwrite和lock
type readwrite inte***ce
type lock integer
// 2. 在介面中新增了兩個匿名字段:readwrite和lock,實現介面巢狀
type file inte***ce
複製**
介面型別變數可以包含任何型別的值,所以需要在執行時檢測變數中儲存的值的實際型別
t := vari.(t)
// 或者可以使用下面這種方式
if t, ok := vari.(t); ok
複製**
vari必須是乙個介面型別變數
介面變數的型別也可以使用switch來檢測
switch t := areaintf.(type)
複製**
type - switch中不允許有fallthrough
type any inte***ce{}
複製**
入門教程推薦: github.com/unknwon/the…
Go語言學習筆記(七)介面
go語言中的介面作用類似於c 中的虛函式機制,可以提供乙個統一呼叫的方式。介面是雙方約定的一種合作協議。介面實現者不需要關心介面會被怎樣使用,呼叫者也不需要關心介面的實現細節。介面是一種型別,也是一種抽象結構,不會暴露所包含資料的格式 型別及結構。每個介面型別由多個方法組成。type 介面型別名 i...
7 1 介面摘自《go語言學習筆記》
1,介面實現機制 只要目標方法集內包含介面宣告的全部方法,就被視為實現了該介面,無需做顯示宣告。目標型別可以實現多個介面。2,內部實現,介面自身也是一種結構型別 type iface struct不能有欄位 不能定義自己的方法。只能宣告方法,不能實現。可嵌入其它介面型別。3,介面通常以er作為介面字...
Python學習筆記 part 9
ide vscode python版本 python3.6 學習教材 python程式設計從入門到實踐 人民郵電出版社 異常 異常一般用try except 塊解決.try print 5 0 except zerodivisionerror print you can t divide by ze...