الاستيراد الدائري في Go: كيفية إصلاح خطأ "import cycle not allowed"
مرحباً بالجميع! أنا مبتدئ في Go وواجهت مشكلة لا أستطيع حلها. أكتب تطبيقاً صغيراً لإدارة المهام (to-do list). لدي حزمتان: `models` و `services`.
في حزمة `models` قمت بتعريف الهيكل `Task` والدالة `Validate` التي تتحقق من صحة المهمة. في حزمة `services` أريد تنفيذ منطق إضافة المهمة إلى قاعدة البيانات، وقبل الحفظ أحتاج إلى استدعاء `Validate` من `models`.
إليك مثال على الكود:
**models/task.go:**
```go
package models
import "errors"
type Task struct {
ID int
Name string
}
func Validate(t Task) error {
if t.Name == "" {
return errors.New("name is required")
}
return nil
}
```
**services/task_service.go:**
```go
package services
import (
"fmt"
"myapp/models"
)
func AddTask(name string) error {
task := models.Task{Name: name}
if err := models.Validate(task); err != nil {
return err
}
fmt.Println("T