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


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.