خطأ "Import cycle not allowed" في Go: كيفية إصلاح الاستيراد الدائري للحزم
مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة لا أستطيع حلها بنفسي. لدي حزمتان: `auth` و`user`. في حزمة `auth`، أريد استخدام دالة `GetUserByID` من حزمة `user` للتحقق مما إذا كان المستخدم موجوداً. وفي حزمة `user`، أحتاج إلى استدعاء دالة `CheckPermission` من حزمة `auth` للتحقق من صلاحيات الوصول عند إنشاء مستخدم جديد. إليك كيف تبدو ملفاتي:
// 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". أفهم أن...