संघटक अरेज़ का उपयोग

Go:
संघटक अरेज़ का उपयोग

कैसे करें:

गो में एक मैप बनाना और प्रारंभ करना विभिन्न तरीकों से किया जा सकता है। यहाँ एक बुनियादी उदाहरण दिया गया है जो आपको शुरुआत करने में सहायता करेगा:

package main

import "fmt"

func main() {
    // मैप की घोषणा और प्रारंभीकरण
    colors := map[string]string{
        "red":   "#FF0000",
        "green": "#00FF00",
        "blue":  "#0000FF",
    }

    fmt.Println(colors)
    // आउटपुट: मैप[blue:#0000FF green:#00FF00 red:#FF0000]
}

तत्वों को जोड़ने या अपडेट करने के लिए, आप इस प्रकार किसी कुंजी को मूल्य असाइन करेंगे:

colors["white"] = "#FFFFFF"
fmt.Println(colors)
// आउटपुट: मैप[blue:#0000FF green:#00FF00 red:#FF0000 white:#FFFFFF]

किसी मूल्य को उसकी कुंजी द्वारा पहुँचना सरल है:

fmt.Println("लाल रंग का हेक्स कोड है:", colors["red"])
// आउटपुट: लाल रंग का हेक्स कोड है: #FF0000

किसी तत्व को हटाने के लिए, delete फंक्शन का उपयोग करें:

delete(colors, "red")
fmt.Println(colors)
// आउटपुट: मैप[blue:#0000FF green:#00FF00 white:#FFFFFF]

मैप पर इटरेटिंग एक फॉर लूप का उपयोग करके की जाती है:

for color, hex := range colors {
    fmt.Printf("Key: %s Value: %s\n", color, hex)
}

याद रखें, गो में मैप्स बिना क्रम के होते हैं। इटरेशन का क्रम गारंटीड नहीं है।

गहराई सें डाइव

गो में, मैप्स को हैश तालिकाओं के रूप में लागू किया जाता है। मैप में प्रत्येक प्रविष्टि में दो आइटम होते हैं: एक कुंजी और एक मूल्य। प्रविष्टि को संग्रहीत करने के लिए कुंजी को हैश किया जाता है, जो एक छोटे सेट के डेटा के लिए सतत समय क्रियावली की अनुमति देता है और उचित हैशिंग के साथ O(1) की औसत समय जटिलता की अनुमति देता है, जो कई हैश टकरावों में सबसे खराब स्थिति में O(n) तक घट सकती है।

नए गो प्रोग्रामरों के लिए एक महत्वपूर्ण नोट यह है कि मैप प्रकार संदर्भ प्रकार होते हैं। इसका मतलब है जब आप एक मैप को एक फंक्शन के लिए पास करते हैं, उस फंक्शन के भीतर मैप में किए गए कोई भी परिवर्तन कॉलर के लिए दिखाई देते हैं। यह, कहें, एक स्ट्रक्ट को एक फंक्शन के लिए पास करने से अलग है, जहां स्ट्रक्ट को कॉपी किया जाता है जब तक कि इसे एक पॉइंटर द्वारा पास नहीं किया जाता।

हालांकि मैप्स सहायक सरणियों से संबंधित अधिकांश उपयोग मामलों के लिए अत्यधिक बहुमुखी और कुशल होते हैं, प्रदर्शन-संवेदनशील अनुप्रयोगों में, अधिक पूर्वान

ुमान योग्य प्रदर्शन लक्षणों वाले डेटा संरचनाओं का उपयोग लाभदायक हो सकता है, विशेषकर यदि कुंजी वितरण अक्सर टकरावों का कारण बन सकते हैं।

विचार करने का एक और विकल्प sync.Map है, जो गो 1.9 से उपलब्ध है, जिन उपयोग मामलों के लिए डिज़ाइन किया गया है जहां कुंजियों को केवल एक बार लिखा जाता है लेकिन कई बार पढ़ा जाता है, इन परिदृश्यों में दक्षता में सुधार की पेशकश करता है। हालांकि, पारंपरिक गो अनुप्रयोगों के लिए, नियमित मैप उपयोग इसकी सरलता और भाषा में सीधा समर्थन के कारण अक्सर अनुशंसित दृष्टिकोण होता है।