Avatar ·

Go中的“Import cycle not allowed”错误:如何修复循环导入包

大家好!我刚开始学习Go,遇到了一个自己无法解决的问题。我有两个包:`auth`和`user`。在`auth`包中,我想使用`user`包中的`GetUserByID`函数来检查用户是否存在。而在`user`包中,我需要调用`auth`包中的`CheckPermission`函数来检查创建新用户时的访问权限。以下是我的文件内容: // 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 { // ... } 当我尝试编译时,Go报错:“import cycle not allowed”。我明白这