"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में रिफ्लेक्शन का उपयोग करके किसी फ़ंक्शन का नाम कैसे प्राप्त करें?

गो में रिफ्लेक्शन का उपयोग करके किसी फ़ंक्शन का नाम कैसे प्राप्त करें?

2024-11-10 को प्रकाशित
ब्राउज़ करें:340

How to Retrieve a Function's Name Using Reflection in Go?

प्रतिबिंब के साथ फ़ंक्शन नाम पुनर्प्राप्त करें

गो में, प्रतिबिंब रनटाइम पर प्रोग्राम संरचनाओं का निरीक्षण और हेरफेर करने के लिए तंत्र प्रदान करता है। किसी फ़ंक्शन के नाम तक पहुँचना ऐसा ही एक उपयोग मामला है। हालाँकि, सीधे इसके प्रकार से नाम प्राप्त करने का प्रयास करने पर एक खाली स्ट्रिंग हो सकती है। Name() एक खाली स्ट्रिंग लौटाता है क्योंकि यह प्रकार को ही इंगित करता है, जिसमें फ़ंक्शन का नाम नहीं होता है।

Solution

फ़ंक्शन का नाम पुनर्प्राप्त करने के लिए, हम रनटाइम.FuncForPC का उपयोग करने की आवश्यकता है। यह फ़ंक्शन पॉइंटर को फ़ंक्शन के प्रतिबिंबित मान पर ले जाता है और पॉइंटर को *Func struct पर लौटाता है। इस *Func पर नाम विधि को कॉल करने से अपेक्षित फ़ंक्शन नाम इस प्रकार मिलता है:

name := runtime.FuncForPC(reflect.ValueOf(function).Pointer()).Name()यह दृष्टिकोण पैकेज और फ़ंक्शन नाम दोनों लौटाता है, उदा। "पैकेज.फ़ंक्शन"। यदि वांछित है, तो स्ट्रिंग को टोकनाइज़ करके पैकेज का नाम निकाला जा सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3