ট্র্যাক
/
Elixir
Elixir
/
সিলেবাস
/
মাল্টিপল ক্লজ ফাংশন
মা

মাল্টিপল ক্লজ ফাংশন মধ্যে Elixir

72টি অনুশীলনী

মাল্টিপল ক্লজ ফাংশন সম্পর্কে

Elixir-এ একটি ফাংশনে একাধিক ক্লজ থাকতে পারে। এটি সম্ভব হয় ফাংশনের আর্গুমেন্টগুলো প্যাটার্ন ম্যাচ করে এবং গার্ড ব্যবহার করে।

# pattern matching the argument
def number(7) do
  "Awesome, that's my favorite"
end

# using a guard
def number(n) when is_integer(n) do
  "That's not my favorite"
end

def number(_n) do
  "That's not even a number!"
end
  • ফাংশন থেকে কন্ট্রোল লজিক আলাদা করে আনতে একাধিক ফাংশন ক্লজ ব্যবহার করুন।
  • সোর্স ফাইলের উপর থেকে নিচ পর্যন্ত ক্রম অনুযায়ী ক্লজগুলো একে একে চেষ্টা করা হয়, যতক্ষণ না কোনো একটি সফল হয়।
  • কোনোটিই সফল না হলে BEAM VM একটি FunctionClauseError রেইজ করে।
  • ফাংশনের বডিতে বা কোনো গার্ডে আর্গুমেন্ট ভ্যারিয়েবল ব্যবহার না করা হলে সেগুলোর আগে একটি _ বসানো উচিত, নইলে কম্পাইলার একটি ওয়ার্নিং দেয়।
  • অ্যানোনিমাস ফাংশনেও একাধিক ক্লজ থাকতে পারে।
    fn
      13 -> "Awesome, that's my favorite"
      _ -> "That's not my favorite"
    end
    

মনে রাখবেন, একাধিক ক্লজযুক্ত ফাংশনকে অন্য প্রোগ্রামিং ভাষা থেকে আপনি যেই ফাংশন ওভারলোডিং চেনেন তার সাথে গুলিয়ে ফেলা উচিত নয়। Elixir-এ ফাংশন চিহ্নিত করা হয় শুধু তার নাম আর অ্যারিটি দিয়ে, আর্গুমেন্টের টাইপ দিয়ে নয় (কারণ এখানে স্ট্যাটিক টাইপিং নেই)। উদাহরণের number/1 ফাংশনটিকে একটি মাত্র ফাংশন হিসেবেই ধরা হয়, তাতে কতগুলো ক্লজ আছে সেটা যাই হোক না কেন।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

মাল্টিপল ক্লজ ফাংশন শিখুন

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

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