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

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

如何在不破壞客戶端代碼的情況下拆分大包?

如何在不破壞客戶端代碼的情況下拆分大包?

Go
喵喔喔 2021-12-27 17:59:32
假設我有一個名為foobar的庫包。隨著時間的推移,它變得又大又重。幸運的是,它是可分離的,我設法將其功能拆分為兩個獨立的包foo和bar —— 大多數客戶只需要使用其中一個。由于我的庫已經被許多客戶端使用,為了兼容性,我仍然希望維護一個foobar包作為foo和bar 中當前功能的代理。如何在 Go 中實現這一目標?想到的一種方法是在foobar 中為foo和bar 中的每個結構/函數創建別名。所以如果foo定義F()和bar定義B(),我會在foobar:var (  F = foo.F  B = bar.B)但我希望有一種更簡單/更清潔的方式。
查看完整描述

1 回答

?
Cats萌萌

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

創建別名包是唯一的方法。但您的嘗試可能不會奏效:它僅適用于函數、變量和常量,而不適用于類型。對于類型,您必須復制 foobar 中的類型。

我不會這樣做。只需在版本 1 中使用 foobar 并使用 foo 和 bar 重新開始(可能直接在版本 2 中)。


查看完整回答
反對 回復 2021-12-27
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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