我想在 golang 中使用泛型,但我不想将它升级到 1.18 或更高版本。有什么办法吗?

我想func abc[T any](collections []T) 在我的 Go 代码中使用类似的东西,但它会抛出错误:

类型参数需要go1.18或更高版本

我不想将它升级到 1.18 或更高版本。有什么办法吗?


小怪兽爱吃肉
浏览 81回答 2
2回答

米脂

从技术上讲是的,您可以使用开发标志在 Go 1.17 上编译一些通用代码——但有严格的限制;但是,无论如何都没有充分的理由这样做。唯一明智和直接的做法是升级到 Go 1.18。

眼眸繁星

您可以尝试找到泛型预处理器。例如,这里有一个非常过时的例子(我自己没有用过)。您使用的是哪个版本的 Go?您能否详细说明您推迟 1.18 的原因?https://github.com/diffeo/gogen正如其他人所说,我会警告您使用类似的东西而不是升级到 1.18。一旦项目涉及其他人,很少有人会知道如何管理它。另一种选择是供您any与类型断言/反射一起使用。虽然您可以做“通用”的事情,但它会使代码更难管理,请再次查看 1.18。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go