Erro "Import cycle not allowed" em Go: como corrigir importação cíclica de pacotes
Olá a todos! Comecei a estudar Go e já me deparei com um problema que não consigo resolver sozinho. Tenho dois pacotes: `auth` e `user`. No pacote `auth`, quero usar a função `GetUserByID` do pacote `user` para verificar se o usuário existe. E no pacote `user`, preciso chamar a função `CheckPermission` do pacote `auth` para verificar permissões de acesso ao criar um novo usuário. Aqui estão meus arquivos:
// 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 {
// ...
}
Quando tento compilar, o Go retorna o erro: "import cycle not allowed". Eu entendo que...