泛型程式設計允許建立可以處理不同類型資料的程式碼。在 Go 中,這是透過類型參數來實現的。泛型的一個常見用例是在介面中,它定義了類型必須實現的一組方法。
當嘗試建立泛型介面(例如迭代器介面)時,您可能會遇到與函數或相關的錯誤方法類型參數。要定義泛型接口,類型參數應在接口類型本身上指定,而不是在接口內的各個方法上指定。
以下是泛型迭代器介面的正確實作範例:
type Iterator[T any] interface { ForEachRemaining(action func(T) error) error // other methods }
在介面體中,您可以將 T 型別參數用作方法中的任何其他類型參數。
這裡有更詳細的說明細分:
type MyIterator[T any] struct { // Implementation details } func (it *MyIterator[T]) ForEachRemaining(action func(T) error) error { // Implementation details }
透過在接口類型上指定類型參數並在接口方法中使用它,您可以建立可以處理不同類型資料的通用接口,提供靈活的基礎用於在Go中建構健壯且可重複使用的程式碼。
以上是如何在 Go 中正確定義通用介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!