首頁  >  文章  >  後端開發  >  為什麼我不能在 Go 泛型中使用指向型別參數的指標上的方法?

為什麼我不能在 Go 泛型中使用指向型別參數的指標上的方法?

Patricia Arquette
Patricia Arquette原創
2024-11-04 21:54:01749瀏覽

Why Can't I Use Methods on a Pointer to a Type Parameter in Go Generics?

Go 中的泛型:探索型別參數與限制

理解型別參數與限制

在Go 的泛型程式設計模型中,型別參數表示佔位符類型,可以用具體類型實例化。但是,類型參數並不暗示其指標類型 (*T) 的任何特定屬性或方法集。另一方面,約束定義了具體類型實作類型參數必須滿足的要求。

指向類型參數問題的指標

錯誤「type T is point to當您嘗試使用特定類型指標 (T)上定義的方法作為型別參數方法集的一部分時,就會出現「型別參數,而不是型別參數」。

要解決此問題,您可以明確聲明需要具體類型在兩者上實現方法的約束類型及其指標:

實現約束

實現約束時,確保正確聲明方法。

T 上聲明SetId 方法的GS 接口,您應該使用

A 實例化MyStore 並修改MyStore 中字段的類型以匹配具體類型:

通過相應地細化約束和實作方法,您可以在Go 程式碼中有效地利用泛型。

以上是為什麼我不能在 Go 泛型中使用指向型別參數的指標上的方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn