استخدام المتغيرات في علامات البنية Go
في Go، تُستخدم علامات البنية لتحديد البيانات الوصفية حول الحقول الموجودة داخل البنية. في حين أنه من الممكن تعريف العلامات باستخدام سلسلة حرفية، فإن محاولات استخدام المتغيرات في مكانها تؤدي إلى أخطاء.
استخدام غير صالح:
const ( TYPE = "type" ) type Shape struct { Type string fmt.Sprintf("json:\"%s\"", TYPE) }
سيؤدي هذا الرمز إلى حدوث خطأ في بناء الجملة، حيث يحاول استخدام عبارة fmt.Sprintf لإنشاء قيمة العلامة ديناميكيًا. يتطلب Go أن تكون علامات البنية عبارة عن سلسلة حرفية في وقت الترجمة.
الاستخدام الصالح:
type Shape struct { Type string `json:"type"` }
في هذا المثال، يتم تعريف العلامة على أنها سلسلة حرفية. هذه هي الطريقة الصحيحة لتحديد علامة البنية.
شرح:
يكمن الاختلاف الرئيسي بين الأمثلة الصالحة وغير الصالحة في وقت التقييم. يتم تقييم القيم الحرفية للسلسلة في وقت الترجمة، بينما يتم تقييم عبارة fmt.Sprintf في وقت التشغيل. يتم استخدام علامات البنية بواسطة أدوات Go المختلفة، مثل أجهزة التشفير وأجهزة فك التشفير JSON، أثناء التجميع. تحتاج هذه الأدوات إلى أن تكون قيم العلامات معروفة في وقت الترجمة من أجل إنشاء الكود الضروري بشكل صحيح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3