我正在我公司的一個(gè)項(xiàng)目中工作,我需要添加一個(gè)新接口并將其實(shí)現(xiàn)到現(xiàn)有代碼中。當(dāng)我這樣做時(shí),我遇到了一個(gè)具有挑戰(zhàn)性的情況,我遇到了循環(huán)依賴問題。以下是更多詳細(xì)信息:項(xiàng)目目錄:test-cyclic-dependency現(xiàn)有代碼在 File1 中:test-cyclic-dependency/model/state/model.gopackage stateimport ("test-cyclic-dependency/model")type CollectionByCollectionName struct { CollectionName string imOfTypeInModel model.STRING}我需要在 File2 中定義一個(gè)新的接口 Search:test-cyclic-dependency/model/search.gopackage modelimport ( "test-cyclic-dependency/model/state")type Search interface { Search(keyword string) state.CollectionByCollectionName}type STRING string此代碼導(dǎo)致循環(huán)依賴錯(cuò)誤,如下所示:# go build model/state/model.go package command-line-arguments imports test-cyclic-dependency/model imports test-cyclic-dependency/model/state imports test-cyclic-dependency/model: import cycle not allowed有人可以幫我解決這個(gè)問題嗎?有沒有辦法解決它保持代碼組織相同?
2 回答

MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
打破依賴循環(huán)type STRING string
進(jìn)入state
包(因?yàn)槟鞘俏ㄒ皇褂盟牡胤?- 所以我猜它與它相關(guān))并model
從包中刪除導(dǎo)入state
?;蛘?,如果它不適合那里邏輯上移動(dòng)type STRING string
到它自己的第三個(gè)包并且只在state
包中導(dǎo)入它。
注意:我假設(shè) typeSTRING
只是一些更有意義的占位符,以保持您的示例簡(jiǎn)單。根本沒有意義type STRING string
。如果您刪除它并僅使用string
您不再需要model
導(dǎo)入state
.

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
通過將搜索界面移動(dòng)到新的單獨(dú)包“搜索”來解決它。
謝謝大家在這方面幫助我。
謝謝和問候,
Prafulla。
- 2 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)
0/150
提交
取消