實作介面的函數
在 Go 中,介面定義了一組必須實作的方法。如果一個類型提供了介面聲明的所有方法,則該類型實作了該介面。
範例1:直接實作介面
以下程式碼定義了Handler 介面和實作它的類型:
這裡,Counter 類型有一個ServeHTTP 方法,該方法接受Handler 介面所需的參數。因此,Counter 實作了 Handler 介面。
範例 2:使用函數實作介面
在此範例中,名為 notFound 的函數不是有效的 Handler類型,因為它沒有所需的方法:
要讓notFound實現Handler接口,需要將其“欺騙”成以下形式:
這裡,HandlerFunc是一種接受兩個參數且不回傳任何內容的類型。透過將 notFound 包裝在 HandlerFunc 中並將其指派給變量,notFound 就成為有效的 Handler 類型。
說明
這裡的關鍵概念是可以使用變數 Handle404作為處理程序,儘管它實際上是一個函數。這是因為 HandlerFunc 類型實作了該函數的 ServeHTTP 方法。當你呼叫Handle404.ServeHTTP時,它實際上是在呼叫notFound函數。
這種方法允許直接使用沒有實作Handler介面的函數。它本質上是一種“調整”函數以適應介面要求的方法。
以上是如何調整函數來實現 Go 中的介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!