"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يفي مؤشر "النشر" بواجهة "وقت التشغيل. الكائن" في Kubernetes؟

كيف يفي مؤشر "النشر" بواجهة "وقت التشغيل. الكائن" في Kubernetes؟

تم النشر بتاريخ 2024-11-08
تصفح:539

 How Does the `&deployment` Pointer Fulfill the `runtime.Object` Interface in Kubernetes?

كيف يفي مؤشر النشر بوقت التشغيل. واجهة الكائن

في كود Kubernetes، ترجع وظيفة الإنشاء في kubectl/run.go قائمة نتائج تحتوي على runtime.Object وخطأ. السطر الأخير من الدالة، return &deployment, nil، يعين عنوان نشر المتغير المحلي لنوع runtime.Object.

النشر هو متغير محلي من النوع Extensionsv1beta1.Deployment. يقوم هذا النوع بتضمين metav1.TypeMeta، الذي يحتوي على أسلوب GetObjectKind() مع جهاز استقبال المؤشر. لذلك، يحتوي مؤشر النشر أيضًا على هذه الطريقة نظرًا لقواعد الترويج الخاصة بـ Go للطرق المضمنة.

بالإضافة إلى ذلك، يحتوي النشر على طريقة DeepCopyObject() "مباشرة" مع جهاز استقبال المؤشر، وبالتالي فإن مجموعة الأساليب *Deployment تحتوي على كلا GetObjectKind() و DeepCopyObject().

تتطلب واجهة runtime.Object أنواعًا لتنفيذ هاتين الطريقتين. نظرًا لأن *النشر ينفذ كلا الطريقتين، فهو نوع صالح لتعيينه لوقت التشغيل.Object.

يسمح نظام الكتابة بهذا التعيين لأن أنواع الواجهة تحدد مجموعة طرق. يمكن لمتغير نوع الواجهة تخزين قيمة من أي نوع باستخدام مجموعة أساليب تمثل مجموعة شاملة من مجموعة أساليب الواجهة. في هذه الحالة، مجموعة أساليب *Deployment هي مجموعة شاملة من مجموعة أساليب runtime.Object، لذلك *Deployment تنفذ runtime.Object.

لذلك، &deployment هي قيمة إرجاع صالحة لوظيفة الإنشاء لأنه يرضي واجهة runtime.Object من خلال وراثة الطريقة من *metav1.TypeMeta المضمن.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3