মানচিত্রের মূল অংশের জন্য কীভাবে একটি ভেরিয়েবল ব্যবহার করবেন


109

বলি আমার আছে

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

Mapপরিবর্তে আমি কীভাবে একটি তৈরি করব

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

আমি পরিবর্তে লেখার সমতুল্য পেতে

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

কিন্তু একটি ভেরিয়েবল Aএবং Xকী ব্যবহার করতে পারেন ?

PS: মানচিত্রের মান অংশের জন্য একই প্রশ্ন।

উত্তর:


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.
মিমিগডল

1
@ মিমিগডল এই উদ্ধৃতিটি নতুন ডকুমেন্টেশনের পুরানো গ্রোভির ডকুমেন্টেশন থেকে এসেছে এর মতো: 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]। এবং ডিফ মানচিত্র = ["" $ এ ": 1, (এক্স): 2] যদি কোনও?
ট্রিমিক্স

2
@ ট্রিমিক্স পার্থক্যটি স্ট্রিংস বনাম জিএসআরটিংস। সাথে [(A):1, (X):2], ভেরিয়েবলটি একটি স্ট্রিংয়ে পালানো হচ্ছে। সহ ["$A":1, (X):2], এটি "$A"হ'ল একটি বিভক্ত স্ট্রিং যার ফলস্বরূপ একটি জিস্ট্রিং হয়। মানচিত্রগুলি প্রত্যাশা করে যে কীগুলি স্থাবর হতে পারে যা কোনও জি স্ট্রিং সরবরাহ করে না।
জোশ লিয়ন

20

জোয়াকিমের উত্তরের আরও আপনি যদি কোনও বিদ্যমান মানচিত্রে এন্ট্রি যুক্ত করতে চান এবং কীগুলি ভেরিয়েবল হয় তবে ব্যবহার করুন:

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

আপনি যদি ব্যবহার করেন:

map.A = 2

ধারণা করা হয় যে আপনি আক্ষরিক স্ট্রিং 'এ' কে কী হিসাবে ব্যবহার করতে চান (যদিও স্কোপে A নামে একটি ভেরিয়েবল রয়েছে।

হালনাগাদ

@ অটি_ইয়েটস যেমন একটি মন্তব্যে উল্লেখ করেছেন, আপনি যদি ব্যবহার করেন তবে একটি মূল পরিবর্তনশীলও সমাধান করা হবে:

map."$A" = 2

যদিও ব্যক্তিগতভাবে আমি [A]সিনট্যাক্সটি ব্যবহার করতে পছন্দ করি কারণ চলকটির "$A"নাম পরিবর্তন করা গেলে রিফ্যাক্টরিং সরঞ্জামগুলি রেফারেন্সটি মিস করতে পারে


6
map."$A"সিনট্যাক্স আপনার সাথে নাল নিরাপদ মানচিত্র ন্যাভিগেশন সুবিধার দেয় map?."$A", যা আমি যতদূর জানি আপনি ব্যবহার অর্জন করতে পারে না map[A]সিনট্যাক্স
Ghiro
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.