ম্

ম্যাপ মধ্যে Elixir

45টি অনুশীলনী

ম্যাপ সম্পর্কে

ম্যাপ হলো এমন একটি ডেটা স্ট্রাকচার, যা কী (key) ও মানের জোড়া ধরে রাখে।

  • কী (key) যেকোনো টাইপের হতে পারে, তবে ইউনিক হতে হবে।

  • মান যেকোনো টাইপের হতে পারে, ইউনিক হতে হবে না।

  • ম্যাপ তার ভেতরের উপাদানের ক্রম নিশ্চিত করে না, যদিও দেখে তা মনে হয়।

    • এর পেছনের ইমপ্লিমেন্টেশন এই ভুল ধারণাটিই তৈরি করে:
  • ম্যাপ লিটারাল ফর্মে ডিক্লেয়ার করা যায়:

    # An empty map
    %{}
    
    # A map with the atom key :a associated to the integer value 1
    %{a: 1}
    
    # A map with the string key "a" associated to the float value 2.0
    %{"a" => 2.0}
    
    # A map with the map key %{} with the list value [1 ,2, 3]
    %{%{} => [1, 2, 3]}
    
    # A map with keys of different types
    %{:a => 1, "b" => 2}
    
  • Map মডিউল-এর Map.new ব্যবহার করেও ম্যাপ ইনস্ট্যানশিয়েট করা যায়। আপনার কাছে যদি আগে থেকেই এমন কোনো এনিউমারেবল কালেকশন থাকে যা অ্যারেতে রূপান্তর করতে চান, তাহলে এটি কাজে লাগতে পারে:

    kw_list = [a: 1, b: 2]
    Map.new(kw_list)
    # => %{a: 1, b: 2}
    
  • ম্যাপের মান বিভিন্ন উপায়ে অ্যাক্সেস করা যায়:

    my_map = %{key: "value"}
    
    # with a dot if the key is an atom
    my_map.key
    # => "value"
    
    # with [], a syntax provided by the Access behaviour
    my_map[:key]
    # => "value"
    
    # with pattern matching
    %{key: x} = my_map
    x
    # => "value"
    
    # with Map.get/2
    Map.get(my_map, :key)
    # => "value"
    
  • স্ট্যান্ডার্ড লাইব্রেরির সাথে আসা Map মডিউল-এ ম্যাপ ব্যবহারের জন্য অনেক দরকারি ফাংশন আছে।

    Map.delete(%{a: 2, b: 3}, :a)
    # => %{b: 3}
    
  • ম্যাপ Enumerable প্রোটোকল ইমপ্লিমেন্ট করে, তাই Enum মডিউল-এর ফাংশন ব্যবহার করা যায়।

  • Map ও Enum মডিউল-এর ফাংশনের আর্গুমেন্ট হিসেবে প্রায়ই অ্যানোনিমাস ফাংশন বা ক্যাপচারড ফাংশন রেফারেন্স দরকার হয়

    # Increment the value by one, if it is not found, update it with 0
    Map.update(%{a: 1}, :a, 0, &(&1 + 1))
    # => %{a: 2}
    
    # Sorting by a specific sub-value
    list = [{"A", 4}, {"B", 3}, {"C", 2}, {"D", 1}]
    Enum.sort_by(list, &Kernel.elem(&1, 1))
    # => [{"D", 1}, {"C", 2}, {"B", 3}, {"A", 4}]
    
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

ম্যাপ শিখুন

অনুশীলন লক করা আছে

ম্যাপ অনুশীলন করতে আরও 10টি অনুশীলনী আনলক করুন