تبدو المشكلة في طريقة تهيئة الهيكلية PhoneOptions
في ملف cli.go
. في Go، عندما تهيئ هيكلية، يجب استخدام اسماء الحقول كما هي معرفة في التعريف الأصلي للهيكلية، وليس اسماء المتغيرات. لذلك، بدلاً من استخدام phone
، يجب استخدام cc
، lang
، و phone
، على النحو التالي:
gophoneOptions := yelk.PhoneOptions{phone: number, cc: "cc_value", lang: "lang_value"}
وهنا، "cc_value"
و "lang_value"
تمثل القيم التي تريد تعيينها للحقول cc
و lang
على التوالي.
في حال كنت تريد تعيين فقط قيمة phone
دون الاهتمام بالقيم الأخرى، يمكنك استخدام struct literal
بدون تحديد الحقول وفقاً للترتيب في التعريف الأصلي للهيكلية:
gophoneOptions := yelk.PhoneOptions{number, "", ""}
وهكذا، سيتم تعيين قيمة number
للحقل phone
فقط، ويتم ترك قيم الحقلين cc
و lang
فارغة.
المزيد من المعلومات
في Go، يمكنك تهيئة هيكلية باستخدام قيم فارغة للحقول التي لا تهتم بقيمها. على سبيل المثال، إذا كنت تريد تعيين قيمة فقط للحقل phone
وترك الحقول الأخرى فارغة، يمكنك فعل ذلك كما يلي:
gophoneOptions := yelk.PhoneOptions{phone: number}
في هذه الحالة، سيتم تعيين قيمة number
للحقل phone
فقط، وسيتم افتراض القيم الفارغة للحقول الأخرى (cc
و lang
).
يمكنك أيضًا استخدام هيكلية تهيئة فارغة ومن ثم تعيين القيم لكل حقل على حدة كما يلي:
gophoneOptions := yelk.PhoneOptions{} phoneOptions.phone = number
هذه الطريقة تتيح لك تعيين قيم الحقول بشكل منفصل بعد تهيئة الهيكلية.
لاحظ أنه يمكنك استخدام أي من الطرق المذكورة أعلاه حسب احتياجات تطبيقك.