Tengo un problema con
ciclo de importación no permitido
Aparece cuando intento probar mi controlador. Como salida tengo
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
¿Alguien puede decirme cómo leer o entender este error? ¿Dónde está mal la dependencia?

accountpaquete importa elbasepaquete, que importa elmuxpaquete, que importa elaccountpaquete. Es un conjunto cíclico de dependencias de importación, que no está permitido. Parece que también tienes otro ciclo,baseimportacionesmux, qué importacionesroutes, qué importacionesbase.Respuestas:
Aquí hay una ilustración de su primer problema de ciclo de importación.
Como puede ver con mi gráfico ASCII incorrecto, está creando un ciclo de
project/components/muximportación cuando importaproject/controllers/account. Como Go no admite dependencias circulares, obtiene elimport cycle not allowederror durante el tiempo de compilación.fuente
watcherAcabo de encontrar esto. Puede estar accediendo a un método / tipo desde el mismo paquete utilizando el nombre del paquete en sí.
Aquí hay un ejemplo para ilustrar lo que quiero decir:
En foo.go:
En foo_test.go:
fuente
Es posible que haya importado,
dentro de
Ya has importado antes. Eso no es compatible.
fuente