Golang中 import cycle not allowed 問題的解決方法
1.問題現象

go編譯的時候報錯import cycle not allowed
cycle意思很簡單就是循環(huán)的意思。代表的就是一個包被循環(huán)的導入。
2.問題分析
這個錯是在container_cloud/pkg/service這里出現的,說明這個包被循環(huán)導入。
可是service這個包文件太多怎么檢查呢?

可以看到這個service包下面的文件特別多。
3.解決問題思路
雖然文件很多,但是看自己最近修改過的文件很少。

檢查發(fā)現這兩個文件是修改過的

然后看文件的頭部的修改記錄,不知道怎么看修改記錄的可以回滾,只要文件沒有提交就可以看到

4.如何破除依賴
檢查發(fā)現是service調用了mapper的數據庫方法,然后mapper里面用到service的一個對象

這種做法是特別不規(guī)范的。我們需要做的就是把這個對象拷貝一份,放到其他包里面

放到domain這個包下,于是依賴解除。
5.問題回顧

剛剛的情況就類似于這種。
如果A必須調用B中的函數,那么我們就破除B對A的依賴,把對A的那部分提出來就行啦,就像剛剛小編不小心在mapper當中去用
service的對象。只能service調用mapper的函數

就像這種就不會有循環(huán)啦。
到此這篇關于Golang中 import cycle not allowed 問題的解決方法的文章就介紹到這了,更多相關golang中 import cycle not allowed 解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 如何解決django配置settings時遇到Could not import settings ''conf.local''
- Golang報“import cycle not allowed”錯誤的2種解決方法
- 詳解golang避免循環(huán)import問題(“import cycle not allowed”)
- golang中import cycle not allowed解決的一種思路
- golang 之import和package的使用
- go各種import的使用方法講解
- 對Golang import 導入包語法詳解
- Golang import 導入包語法及一些特殊用法詳解
- Golang import本地包和導入問題相關詳解
- golang import自定義包方式
- 解決golang在import自己的包報錯的問題
- 解決goland 導入項目后import里的包報紅問題
- Go基礎教程系列之import導入包(遠程包)和變量初始化詳解
相關文章
Mac上Go環(huán)境和VS Code的正確安裝與配置方法
Go語言是一個新興的語言。下面介紹一下如何在Mac系統(tǒng)下安裝和使用這個語言,Go語言提供了mac下安裝包,可直接下載安裝包點擊安裝2018-03-03
gin自定義中間件解決requestBody不可重復讀問題(最新推薦)
這篇文章主要介紹了gin自定義中間件解決requestBody不可重復讀問題,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

