首頁 >後端開發 >Golang >在 Go 中使用通用介面時如何解決「cannot infer V」錯誤?

在 Go 中使用通用介面時如何解決「cannot infer V」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-12-11 07:19:11455瀏覽

How Can I Resolve the

Go 推斷類型參數:解決「cannot infer V」錯誤

在處理支援不同類型的泛型介面時,可能會遇到「cannot infer V 」錯誤Go 中的錯誤,特別是在1.20 及以下版本。以下是解決此問題的方法:

Go 1.21 及更高版本

對於 Go 1.21 及更高版本,無需明確指定類型約束即可解決錯誤。類型推斷現在在為介面賦值時考慮方法類型,允許編譯器從提供的方法推斷類型參數。

Go 1.20 及更低版本

在 Go 1.20 及更早版本中,推斷類型不支援實現 ConfigStorage[K, V] 約束的具體類型中的 V 。要解決該錯誤,您需要在呼叫GetValue 函數時明確提供類型參數,如下所示:

// Specify string for K and string for V
GetValue[string, string](fileStorage, "key")

透過此修改,編譯器現在可以根據提供的類型推斷V 的類型K 和set方法實作。

以上是在 Go 中使用通用介面時如何解決「cannot infer V」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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