在处理支持不同类型的泛型接口时,可能会遇到“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中文网其他相关文章!