जवाबों:
इसे इस्तेमाल करो:
def map = [(A):1, (X):2]
मूल्य-भाग के लिए यह और भी आसान है, क्योंकि कोई भी स्वचालित "कन्वर्ट टेक्स्ट टू स्ट्रिंग" नहीं हो रहा है:
def map = [keyA:A, keyX:X]
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..
[(A):1, (X):2]
, चर एक स्ट्रिंग में बच रहा है। के साथ ["$A":1, (X):2]
, "$A"
एक प्रक्षेपित स्ट्रिंग है जिसके परिणामस्वरूप GString होता है। मैप्स की उम्मीद है कि चाबियाँ अपरिवर्तनीय होंगी जो एक GString प्रदान नहीं करता है।
जोआचिम के उत्तर के आगे , यदि आप मौजूदा मानचित्र में प्रविष्टियाँ जोड़ना चाहते हैं और कुंजी चर हैं, तो उपयोग करें:
def map = [:]
def A = 'abc'
map[A] = 2
यदि तुम प्रयोग करते हो:
map.A = 2
यह माना जाता है कि आप शाब्दिक स्ट्रिंग 'ए' को कुंजी के रूप में उपयोग करना चाहते हैं (भले ही गुंजाइश में ए नाम का चर हो।
जैसा कि @tim_yates ने एक टिप्पणी में बताया है, यदि आप उपयोग करते हैं तो एक मुख्य चर भी हल किया जाएगा:
map."$A" = 2
हालाँकि मैं व्यक्तिगत रूप से [A]
वाक्यविन्यास का उपयोग करना पसंद करता हूं क्योंकि "$A"
यदि चर का नाम बदला जाता है तो रिफलेक्टिंग टूल संदर्भ को याद कर सकते हैं
map."$A"
वाक्य रचना आप के साथ अशक्त सुरक्षित मानचित्र नेविगेशन के लाभ देता है map?."$A"
, जो AFAIK आप उपयोग कर हासिल नहीं कर सकते map[A]
वाक्य रचना
To use the value of a String as the key value of a map, simply surround the variable with parenthesis.