Estou com um problema
ciclo de importação não permitido
Aparece quando estou tentando testar meu controlador. Como saída eu tenho
can't load package: import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/account
import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/account
import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/routes
imports project/controllers/base
Alguém pode me dizer como ler ou entender esse erro? Onde está a dependência errada?
account
pacote importa obase
pacote, que importa omux
pacote, que importa oaccount
pacote. Esse é um conjunto cíclico de dependências de importação, o que não é permitido. Parece que você também tem outro ciclo,base
importaçõesmux
, quais importaçõesroutes
, quais importaçõesbase
.Respostas:
Aqui está uma ilustração do seu primeiro problema no ciclo de importação.
Como você pode ver no meu gráfico ASCII ruim, você está criando um ciclo de
project/components/mux
importação quando importaproject/controllers/account
. Como o Go não suporta dependências circulares, você recebe oimport cycle not allowed
erro durante o tempo de compilação.fonte
watcher
Acabei de encontrar isso. Você pode estar acessando um método / tipo de dentro do mesmo pacote usando o próprio nome do pacote.
Aqui está um exemplo para ilustrar o que quero dizer:
Em foo.go:
Em foo_test.go:
fonte
Você pode ter importado,
dentro de
Você já importou antes. Isso não é suportado.
fonte