首页 > 后端开发 > Golang > 在 Go 中使用通用接口时如何解决'cannot infer V”错误?

在 Go 中使用通用接口时如何解决'cannot infer V”错误?

Patricia Arquette
发布: 2024-12-11 07:19:11
原创
481 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板