Golang中 import cycle not allowed 問(wèn)題的解決方法
1.問(wèn)題現(xiàn)象
go編譯的時(shí)候報(bào)錯(cuò)import cycle not allowed
cycle
意思很簡(jiǎn)單就是循環(huán)的意思。代表的就是一個(gè)包被循環(huán)的導(dǎo)入。
2.問(wèn)題分析
這個(gè)錯(cuò)是在container_cloud/pkg/service
這里出現(xiàn)的,說(shuō)明這個(gè)包被循環(huán)導(dǎo)入。
可是service
這個(gè)包文件太多怎么檢查呢?
可以看到這個(gè)service
包下面的文件特別多。
3.解決問(wèn)題思路
雖然文件很多,但是看自己最近修改過(guò)的文件很少。
檢查發(fā)現(xiàn)這兩個(gè)文件是修改過(guò)的
然后看文件的頭部的修改記錄,不知道怎么看修改記錄的可以回滾,只要文件沒(méi)有提交就可以看到
4.如何破除依賴
檢查發(fā)現(xiàn)是service
調(diào)用了mapper的數(shù)據(jù)庫(kù)方法,然后mapper里面用到service的一個(gè)對(duì)象
這種做法是特別不規(guī)范的。我們需要做的就是把這個(gè)對(duì)象拷貝一份,放到其他包里面
放到domain
這個(gè)包下,于是依賴解除。
5.問(wèn)題回顧
剛剛的情況就類(lèi)似于這種。
如果A必須調(diào)用B中的函數(shù),那么我們就破除B對(duì)A的依賴,把對(duì)A的那部分提出來(lái)就行啦,就像剛剛小編不小心在mapper
當(dāng)中去用
service
的對(duì)象。只能service
調(diào)用mapper
的函數(shù)
就像這種就不會(huì)有循環(huán)啦。
到此這篇關(guān)于Golang中 import cycle not allowed 問(wèn)題的解決方法的文章就介紹到這了,更多相關(guān)golang中 import cycle not allowed 解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 如何解決django配置settings時(shí)遇到Could not import settings ''conf.local''
- Golang報(bào)“import cycle not allowed”錯(cuò)誤的2種解決方法
- 詳解golang避免循環(huán)import問(wèn)題(“import cycle not allowed”)
- golang中import cycle not allowed解決的一種思路
- golang 之import和package的使用
- go各種import的使用方法講解
- 對(duì)Golang import 導(dǎo)入包語(yǔ)法詳解
- Golang import 導(dǎo)入包語(yǔ)法及一些特殊用法詳解
- Golang import本地包和導(dǎo)入問(wèn)題相關(guān)詳解
- golang import自定義包方式
- 解決golang在import自己的包報(bào)錯(cuò)的問(wèn)題
- 解決goland 導(dǎo)入項(xiàng)目后import里的包報(bào)紅問(wèn)題
- Go基礎(chǔ)教程系列之import導(dǎo)入包(遠(yuǎn)程包)和變量初始化詳解
相關(guān)文章
Go連接并操作SQLite數(shù)據(jù)庫(kù)基本步驟
在這篇文章中,我們將詳細(xì)描述如何在?Go?語(yǔ)言中使用?SQLite?數(shù)據(jù)庫(kù),我們將會(huì)從如何在?Go?中安裝和使用?SQLite?驅(qū)動(dòng)包開(kāi)始講起,然后逐步介紹如何創(chuàng)建數(shù)據(jù)庫(kù)連接,執(zhí)行?SQL?查詢,處理返回的數(shù)據(jù)以及關(guān)閉數(shù)據(jù)庫(kù)連接2024-01-01Go 自定義package包設(shè)置與導(dǎo)入操作
這篇文章主要介紹了Go 自定義package包設(shè)置與導(dǎo)入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05Go語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)JSON
本文主要介紹了Go語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)JSON,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01一文帶你了解Go語(yǔ)言中鎖特性和實(shí)現(xiàn)
Go語(yǔ)言中的sync包主要提供的對(duì)并發(fā)操作的支持,標(biāo)志性的工具有cond(條件變量)?once?(原子性)?還有?鎖,本文會(huì)主要向大家介紹Go語(yǔ)言中鎖的特性和實(shí)現(xiàn),感興趣的可以了解下2024-03-03GoLang OS包以及File類(lèi)型詳細(xì)講解
go中對(duì)文件和目錄的操作主要集中在os包中,下面對(duì)go中用到的對(duì)文件和目錄的操作,做一個(gè)總結(jié)筆記。在go中的文件和目錄涉及到兩種類(lèi)型,一個(gè)是type File struct,另一個(gè)是type Fileinfo interface2023-03-03golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡(jiǎn)介
這篇文章主要為大家詳細(xì)介紹了golang結(jié)構(gòu)化日志log/slog包中slog.Record結(jié)構(gòu)體的使用方法和需要注意的點(diǎn),文中的示例代碼講解詳細(xì),需要的可以學(xué)習(xí)一下2023-10-10