首頁 >後端開發 >Golang >為什麼我不能為 Go 泛型類型指派不同的參數?

為什麼我不能為 Go 泛型類型指派不同的參數?

Susan Sarandon
Susan Sarandon原創
2024-12-20 05:56:10125瀏覽

Why Can't I Assign Go Generic Types with Different Arguments?

使用不同參數指派泛型類型

在 Go 中,泛型介面和實作不允許跨不同型別參數直接賦值。

讓我們想想一個簡化的範例:

此程式碼拋出一個編譯錯誤,指出Props[Example] 不能在 return 語句中指派給 Props[Generic]。這是因為當使用不同類型參數實例化泛型類型時,Go 會建立不同的命名類型。

考慮以下函數:

它使用 Generic 作為型別參數實例化 Props。因此,即使 Example 實作了 Generic,Props[Example] 和 Props[Generic] 也變成了兩種不同的類型。因此,將 Props[Example] 指派給 Props[Generic] 是無效的,無論其型別參數為何。

要解決此問題,一種選擇是使用滿足Generic 約束的類型參數來實例化Props:

在此範例中,Props 使用符合Generic 介面的類型參數T進行實例化。這允許將 Props[Example] 類型的值指派給 Props[Generic] 並確保類型安全。

以上是為什麼我不能為 Go 泛型類型指派不同的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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