नक्शे के प्रमुख भाग के लिए एक चर का उपयोग कैसे करें


109

मान लीजिए कि मेरे पास है

def A = "abc"
def X = "xyz"

मैं कैसे Map, जहां के बजाय, कैसे बना सकता हूं

def map = [A:1, X:2]

मुझे लिखने के बराबर मिलता है

def map = [abc:1, xyz:2]

लेकिन एक चर का उपयोग कर सकते हैं Aऔर Xकुंजी के लिए?

पुनश्च: मानचित्र के मूल्य भाग के लिए एक ही सवाल।

जवाबों:


168

इसे इस्तेमाल करो:

def map = [(A):1, (X):2]

मूल्य-भाग के लिए यह और भी आसान है, क्योंकि कोई भी स्वचालित "कन्वर्ट टेक्स्ट टू स्ट्रिंग" नहीं हो रहा है:

def map = [keyA:A, keyX:X]

11
बस एक संदर्भ प्रदान करने के लिए: मैप डॉक्यूमेंटेशन कहता है:To use the value of a String as the key value of a map, simply surround the variable with parenthesis.
mmigdol

1
@mmigdol यह उद्धरण पुराने ग्रूवी प्रलेखन से नवीनतम प्रलेखन में इस तरह है: Map keys are strings by default: [a:1] is equivalent to ['a':1]. This can be confusing if you define a variable named a and that you want the value of to be the key in your map. If this is the case, then you must escape >the key by adding parenthesis..
मीकल बर्नहार्ड

तो डिफ मैप के बीच क्या अंतर है = [(ए): 1, (एक्स): 2]। और डिफ मैप = ["$ A": 1, (X): 2] यदि कोई हो?
TriMix

2
@TriMix अंतर स्ट्रिंग्स बनाम GStrings है। के साथ [(A):1, (X):2], चर एक स्ट्रिंग में बच रहा है। के साथ ["$A":1, (X):2], "$A"एक प्रक्षेपित स्ट्रिंग है जिसके परिणामस्वरूप GString होता है। मैप्स की उम्मीद है कि चाबियाँ अपरिवर्तनीय होंगी जो एक GString प्रदान नहीं करता है।
जोश ल्योन

20

जोआचिम के उत्तर के आगे , यदि आप मौजूदा मानचित्र में प्रविष्टियाँ जोड़ना चाहते हैं और कुंजी चर हैं, तो उपयोग करें:

def map = [:]
def A = 'abc'
map[A] = 2

यदि तुम प्रयोग करते हो:

map.A = 2

यह माना जाता है कि आप शाब्दिक स्ट्रिंग 'ए' को कुंजी के रूप में उपयोग करना चाहते हैं (भले ही गुंजाइश में ए नाम का चर हो।

अपडेट करें

जैसा कि @tim_yates ने एक टिप्पणी में बताया है, यदि आप उपयोग करते हैं तो एक मुख्य चर भी हल किया जाएगा:

map."$A" = 2

हालाँकि मैं व्यक्तिगत रूप से [A]वाक्यविन्यास का उपयोग करना पसंद करता हूं क्योंकि "$A"यदि चर का नाम बदला जाता है तो रिफलेक्टिंग टूल संदर्भ को याद कर सकते हैं


6
map."$A"वाक्य रचना आप के साथ अशक्त सुरक्षित मानचित्र नेविगेशन के लाभ देता है map?."$A", जो AFAIK आप उपयोग कर हासिल नहीं कर सकते map[A]वाक्य रचना
Ghiro
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.