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...
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Funktionale Programmierung in Kotlin: Prinzipien und Beispiele