गो में प्रतिबिंब प्रकार और मान
गो में प्रतिबिंब डेवलपर्स को रनटाइम पर प्रकारों और मूल्यों का निरीक्षण और हेरफेर करने की अनुमति देते हैं। प्रतिबिंब के प्रभावी उपयोग के लिए उनके भेदों को समझना महत्वपूर्ण है। , जबकि रिफ्लेक्ट.ValueOf(i) एक रिफ्लेक्ट.वैल्यू लौटाता है object.
reflect.Type
प्रकार के बारे में जानकारी प्रदान करता है, जैसे उसका नाम, पैकेज और अंतर्निहित प्रकार।अनुमति देता है इसके तरीकों, फ़ील्ड और अन्य प्रकार से संबंधित डेटा के बारे में प्रश्न।
इसमें पास किए गए वेरिएबल का वास्तविक मान शामिल नहीं है यह।पढ़ने और सेटिंग की अनुमति देता है मान, अंतर्निहित डेटा में हेरफेर करना, और इसकी विधियों और फ़ील्ड्स को क्वेरी करना।
इसमें एक प्रकार() विधि शामिल है जो इसकी वापसी करती है प्रतिबिंबित.प्रकार.func show(i इंटरफ़ेस{}) { स्विच टी := i.(प्रकार) { मामला *व्यक्ति: t := reform.TypeOf(i) // *व्यक्ति का प्रकार प्राप्त करें v := reform.ValueOf(i) // i का मान प्राप्त करें टैग := t.Elem().फ़ील्ड(0).टैग नाम := v.Elem().फ़ील्ड(0).स्ट्रिंग() } }
टी एक प्रतिबिंबित है। टाइप ऑब्जेक्ट जो i द्वारा इंगित किए गए चर के प्रकार का प्रतिनिधित्व करता है।
func show(i interface{}) {
switch t := i.(type) {
case *Person:
t := reflect.TypeOf(i) // Get the type of *Person
v := reflect.ValueOf(i) // Get the value of i
tag := t.Elem().Field(0).Tag
name := v.Elem().Field(0).String()
}
}
टैग रिफ्लेक्ट.टाइप के माध्यम से प्राप्त व्यक्ति संरचना के पहले फ़ील्ड (नाम) का टैग है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3