Avatar ·

خطأ "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". أفهم أن...