我想func abc[T any](collections []T) 在我的 Go 代码中使用类似的东西,但它会抛出错误:类型参数需要go1.18或更高版本我不想将它升级到 1.18 或更高版本。有什么办法吗?
2 回答
米脂
TA贡献1836条经验 获得超3个赞
从技术上讲是的,您可以使用开发标志在 Go 1.17 上编译一些通用代码——但有严格的限制;但是,无论如何都没有充分的理由这样做。
唯一明智和直接的做法是升级到 Go 1.18。
眼眸繁星
TA贡献1873条经验 获得超9个赞
您可以尝试找到泛型预处理器。例如,这里有一个非常过时的例子(我自己没有用过)。您使用的是哪个版本的 Go?您能否详细说明您推迟 1.18 的原因?
https://github.com/diffeo/gogen
正如其他人所说,我会警告您使用类似的东西而不是升级到 1.18。一旦项目涉及其他人,很少有人会知道如何管理它。
另一种选择是供您any
与类型断言/反射一起使用。虽然您可以做“通用”的事情,但它会使代码更难管理,请再次查看 1.18。
- 2 回答
- 0 关注
- 80 浏览
添加回答
举报
0/150
提交
取消