理解Go 中的介面實作檢查
在Go 中,決定一個值是否實現了一個介面對於初學者來說可能是一項令人困惑的任務。本文旨在透過範例來闡明該過程。
為什麼要使用介面來實現檢查?
通常,編譯器會根據已知的值自動執行介面實作檢查類型。但是,當處理未知類型的值時,有必要手動檢查介面是否已實現。
範例程式碼分析
考慮以下範例:
type Somether interface { Method() bool } type MyType string func (mt MyType) Method2() bool { return true } func main() { val := MyType("hello") _, ok := val.(Somether) var _ Iface = (*MyType)(nil) }
方法一:帶型別斷言switch
方法一:帶型別斷言switch
方法一:帶型態斷言switch
方法一:帶型別斷言switch
var _ Iface = (*MyType)(nil)
方法一:帶型別斷言switch
方法一:帶型別斷言switch
方法一:帶型態斷言switch
方法一:帶型態斷言switch。 在第一次嘗試中,類型switch (_(Somether)) 用來檢查值val是否實作介面 Somether。然而,這種方法需要類型切換,這可能不是最佳的。 方法2:分配給空介面第二種方法使用空介面:此技術將MyType 類型的指標指派給空接口變數。如果 MyType 實作 Somether,則程式碼將順利編譯。然而,由於它沒有,將會拋出一個編譯時錯誤,表示 MyType 沒有實作 Somether。 介面實作檢查的簡單性這很重要請注意,這些檢查主要在值的類型未知時使用。當型別已知時,編譯器會自動驗證介面實作。以上是如何檢查 Go 中的介面實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!