कैसे &परिनियोजन पॉइंटर रनटाइम को संतुष्ट करता है।ऑब्जेक्ट इंटरफ़ेस
कुबेरनेट्स कोड में, kubectl/run.go में जेनरेट फ़ंक्शन वापस आता है एक परिणाम सूची जिसमें रनटाइम.ऑब्जेक्ट और एक त्रुटि है। फ़ंक्शन की अंतिम पंक्ति, रिटर्न और परिनियोजन, शून्य, रनटाइम.ऑब्जेक्ट प्रकार के लिए स्थानीय चर परिनियोजन का पता निर्दिष्ट करती है।
परिनियोजन प्रकार एक्सटेंशनv1beta1.परिनियोजन का एक स्थानीय चर है। यह प्रकार Metav1.TypeMeta को एम्बेड करता है, जिसमें एक पॉइंटर रिसीवर के साथ GetObjectKind() विधि होती है। इसलिए, एम्बेडेड तरीकों के लिए गो के प्रचार नियमों के कारण परिनियोजन के सूचक में भी यह विधि होती है। GetObjectKind() और DeepCopyObject() दोनों।
runtime.Object इंटरफ़ेस को इन दो विधियों को लागू करने के लिए प्रकारों की आवश्यकता होती है। चूंकि *परिनियोजन दोनों विधियों को कार्यान्वित करता है, यह रनटाइम.ऑब्जेक्ट को असाइन करने के लिए एक वैध प्रकार है।
टाइप सिस्टम इस असाइनमेंट की अनुमति देता है क्योंकि इंटरफ़ेस प्रकार एक विधि सेट निर्दिष्ट करते हैं। इंटरफ़ेस प्रकार का एक वेरिएबल किसी भी प्रकार के मान को एक विधि सेट के साथ संग्रहीत कर सकता है जो इंटरफ़ेस के विधि सेट का सुपरसेट है। इस मामले में, *परिनियोजन का विधि सेट रनटाइम.ऑब्जेक्ट के विधि सेट का एक सुपरसेट है, इसलिए *परिनियोजन रनटाइम.ऑब्जेक्ट को लागू करता है।
इसलिए, &परिनियोजन जेनरेट फ़ंक्शन के लिए एक वैध रिटर्न मान है क्योंकि यह एम्बेडेड *metav1.TypeMeta.
से विधि वंशानुक्रम के माध्यम से रनटाइम.ऑब्जेक्ट इंटरफ़ेस को संतुष्ट करता है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3