Avatar ·

Fehler "Import cycle not allowed" in Go: Wie man zyklische Importe von Paketen behebt

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin bereits auf ein Problem gestoßen, das ich nicht alleine lösen kann. Ich habe zwei Pakete: `auth` und `user`. Im Paket `auth` möchte ich die Funktion `GetUserByID` aus dem Paket `user` verwenden, um zu überprüfen, ob ein Benutzer existiert. Und im Paket `user` muss ich die Funktion `CheckPermission` aus dem Paket `auth` aufrufen, um die Zugriffsrechte beim Erstellen eines neuen Benutzers zu überprüfen. So sehen meine Dateien aus: // auth/auth.go package auth import "project/user" func Login(userID int) bool { user := user.GetUserByID(userID) return user != nil } // user/user.go package user import "project/auth" type User struct { ID int Name string } func CreateUser(name string) *User { if !auth.CheckPermission("admin") { return nil } return &User{ID: 1, Name: name} } func GetUserByID(id int) *User { // ... } Wenn ich versuche zu kompilieren, gibt Go den Fehler aus: "import cycle not allowed". Ich verstehe, dass...