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


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.