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”。我明白这