कई मानचित्रों में कुशल कुंजी अस्तित्व की जांच
गो में, मानचित्रों के साथ काम करना आम बात है, जो कुंजी पुनर्प्राप्त करने के लिए कुशल डेटा संरचनाएं हैं -मूल्य जोड़े. हालाँकि, डेवलपर द्वारा प्रदान किया गया कोड दो अलग-अलग मानचित्रों में एक कुंजी के अस्तित्व की जाँच करने की आवश्यकता को दर्शाता है। प्रश्न यह बना हुआ है कि क्या इस प्रक्रिया को और अधिक संक्षिप्त बनाया जा सकता है।
जैसा कि उत्तर में बताया गया है, कुंजी अस्तित्व की जाँच के लिए गो में विशेष v, ok := m[k] फॉर्म का उपयोग करना एकल-चर असाइनमेंट तक सीमित है . इसलिए, इस फॉर्म का उपयोग करके दो चेकों को एक में जोड़ना संभव नहीं है।
हालांकि, वांछित कार्यक्षमता प्राप्त करने के लिए वैकल्पिक दृष्टिकोण हैं:
टुपल असाइनमेंट:
यदि मानचित्र का मान प्रकार एक इंटरफ़ेस प्रकार है और आप यह सुनिश्चित कर सकते हैं कि शून्य मान का उपयोग नहीं किया गया है, तो आप दो का उपयोग करके टुपल असाइनमेंट निष्पादित कर सकते हैं सूचकांक अभिव्यक्ति:
if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil { // ... }
सहायक कार्य:
दोनों मानचित्रों में मुख्य अस्तित्व की जांच करने और परिणाम लौटाने के लिए एक सहायक कार्य बनाया जा सकता है:
func idx(m1, m2 map[string]interface{}, k string) ( v1, v2 interface{}, ok1, ok2 bool) { v1, ok1 = m1[k] v2, ok2 = m2[k] return }
इस फ़ंक्शन का उपयोग निम्नानुसार किया जा सकता है:
if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 { // ... }
ये दृष्टिकोण एक ही सशर्त विवरण के भीतर एकाधिक मानचित्रों में एक कुंजी के अस्तित्व के लिए संक्षिप्त और कुशल जांच की अनुमति देते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3