亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想在 golang 中使用泛型,但我不想將它升級到 1.18 或更高版本。有什么辦法嗎?

我想在 golang 中使用泛型,但我不想將它升級到 1.18 或更高版本。有什么辦法嗎?

Go
小怪獸愛吃肉 2023-01-03 10:07:42
我想func abc[T any](collections []T) 在我的 Go 代碼中使用類似的東西,但它會拋出錯誤:類型參數需要go1.18或更高版本我不想將它升級到 1.18 或更高版本。有什么辦法嗎?
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

從技術上講是的,您可以使用開發標志在 Go 1.17 上編譯一些通用代碼——但有嚴格的限制;但是,無論如何都沒有充分的理由這樣做。

唯一明智和直接的做法是升級到 Go 1.18。



查看完整回答
反對 回復 2023-01-03
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您可以嘗試找到泛型預處理器。例如,這里有一個非常過時的例子(我自己沒有用過)。您使用的是哪個版本的 Go?您能否詳細說明您推遲 1.18 的原因?

https://github.com/diffeo/gogen

正如其他人所說,我會警告您使用類似的東西而不是升級到 1.18。一旦項目涉及其他人,很少有人會知道如何管理它。

另一種選擇是供您any與類型斷言/反射一起使用。雖然您可以做“通用”的事情,但它會使代碼更難管理,請再次查看 1.18。



查看完整回答
反對 回復 2023-01-03
  • 2 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號