Saya punya masalah dengan
siklus impor tidak diizinkan
Tampaknya, ketika saya mencoba menguji controller saya. Sebagai output saya dapatkan
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
Dapatkah seseorang memberi tahu saya, cara membaca atau memahami kesalahan ini? Di mana ketergantungannya salah?
account
paket imporbase
paket, yang mengimpormux
paket, yang mengimporaccount
paket. Itu adalah set dependensi impor siklus, yang tidak diizinkan. Sepertinya Anda memiliki siklus lain juga,base
impormux
, imporroutes
, imporbase
.Jawaban:
Berikut adalah ilustrasi masalah siklus impor pertama Anda.
Seperti yang Anda lihat dengan grafik ASCII saya yang buruk adalah Anda membuat siklus
project/components/mux
impor saat imporproject/controllers/account
. Karena Go tidak mendukung dependensi melingkar, Anda mendapatkanimport cycle not allowed
kesalahan selama waktu kompilasi.sumber
watcher
Saya baru saja menemukan ini. Anda mungkin mengakses metode / tipe dari dalam paket yang sama menggunakan nama paket itu sendiri.
Ini adalah contoh untuk menggambarkan apa yang saya maksud:
Dalam foo.go:
Di foo_test.go:
sumber
Anda mungkin telah mengimpor,
di dalam
Anda sudah mengimpor sebelumnya. Itu tidak didukung.
sumber