रिफ्लेक्ट पैकेज के भीतर .कॉल फ़ंक्शन का उपयोग करते समय, आवश्यक पैरामीटर प्रारूप का पालन करना महत्वपूर्ण है। यह आलेख आपको लक्ष्य विधि को पूरा करने के लिए .Call फ़ंक्शन का सही ढंग से उपयोग करने और चर में हेरफेर करने की प्रक्रिया के माध्यम से मार्गदर्शन करेगा।
प्रदान किए गए नमूना कोड में:
params := "some map[string][]string" in := make([]reflect.Value,0) return_values := reflect.ValueOf(&controller_ref).MethodByName(action_name).Call(in)
in वेरिएबल को एक खाली स्लाइस के रूप में आरंभ किया गया है। जिस विधि को आप कॉल करने का इरादा रखते हैं, वह मैप[स्ट्रिंग][]स्ट्रिंग प्रकार के एकल पैरामीटर की अपेक्षा करती है, इन स्लाइस में इस मैप को रखने वाला एक प्रतिबिंबित.वैल्यू उदाहरण होना चाहिए।
इस समस्या को सुधारने के लिए, सही दृष्टिकोण है एक नक्शा बनाने के लिए और फिर उसे reform.ValueOf का उपयोग करके एक reform.Value में परिवर्तित करने के लिए। यहां समायोजित कोड है:
m := map[string][]string{"foo": []string{"bar"}} in := []reflect.Value{reflect.ValueOf(m)} return_values := reflect.ValueOf(&controller_ref).MethodByName(action_name).Call(in)
इस संशोधन के साथ, इन वेरिएबल मैप को लक्ष्य विधि में सही ढंग से पास करेगा, यह सुनिश्चित करते हुए कि वांछित फ़ंक्शन कॉल सफल होगी .
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3