Go語言--介面interface
阿新 • • 發佈:2021-09-01
介面 interface
-
定義:
- interface是方法的集合;
- interface是一種型別,並且是指標型別;
- interface的作用在於多型的實現;
- interface不能包含任何變數。
-
//書寫格式: type 介面名稱 interface{ method1(引數列表) 返回值列表 method2(引數列表) 返回值列表 。。。。。。 }
-
使用注意事項:
- 介面的使用不僅僅針對結構體,自定義型別、變數等都可以實現介面;
- 任意結構體都隱式地實現了空介面;
- 要實現一個介面,必須實現該接口裡面的所有方法。
-
空介面
/* Go 語言為了避免使用者重複定義很多空介面,它自己內建了一個空介面,名字叫 interface{} 空接口裡面沒有方法,其作用相當於 Java 的 Object 型別,可以容納任意物件。 */ fmt.Println("user:") var user = map[interface{}]interface{}{ 712: 18, "address": "徐州", 5.2: true, } fmt.Println(user)
-
介面巢狀:
- 介面巢狀可理解為繼承,子介面擁有父介面的所有方法;
- 如果使用該子介面,必須將父介面和子介面的所有方法都實現。
-
型別轉換:
func main() { var t interface{} name := "小灰" t = name x, ok := t.(int) y, ok1 := t.(string) fmt.Println(x, ok) fmt.Println(y, ok1) } /*結果顯示如下: 0 false 小灰 true ------------------------------------- 將介面轉化為指定型別時,ok可省略,但是省略以後轉化失敗會報錯。 true表示轉化成功,flase表示轉化失敗,並採用預設值。 */