我想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 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消