كيفية تعيين القيم الافتراضية لحقول الهياكل في Go؟
مرحبًا بالجميع! أنا مبتدئ في Go وواجهت مشكلة: في Go لا توجد منشئات (constructors) ولا آلية مدمجة لتحديد القيم الافتراضية لحقول الهياكل (structs) كما في Python أو PHP. لنفترض أن لدي هيكلًا لتكوين التطبيق:
```go
type Config struct {
Port int
Timeout int
Debug bool
}
```
أريد أن يكون `Port` افتراضيًا 8080، و`Timeout` 30 ثانية، و`Debug` `false`. ولكن عندما أنشئ الهيكل `cfg := Config{}`، تحصل جميع الحقول على القيم الصفرية (0, 0, false). أضطر في كل مرة إلى تحديد جميع الحقول بشكل صريح: `cfg := Config{Port: 8080, Timeout: 30}`. هذا غير مريح، خاصة إذا كان الهيكل يحتوي على العديد من الحقول وأريد أن يكون لبعضها قيم افتراضية معقولة.
حاولت استخدام وسوم الهياكل (struct tags)، لكن يبدو أنها لا تؤثر على التهيئة. هل هناك طريقة لتعيين القيم الافتراضية مباشرة في تعريف الهيكل؟ أم يجب كتابة دالة مصنعية (factory function)؟ ولكن عندها، سأحتاج لكل هيكل...