在處理支援不同類型的泛型介面時,可能會遇到「cannot infer V 」錯誤Go 中的錯誤,特別是在1.20 及以下版本。以下是解決此問題的方法:
對於 Go 1.21 及更高版本,無需明確指定類型約束即可解決錯誤。類型推斷現在在為介面賦值時考慮方法類型,允許編譯器從提供的方法推斷類型參數。
在 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中文網其他相關文章!