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"। मैं समझता हूं कि यह एक चक्रीय निर्भरता है,