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

প্যাটার্ন ম্যাচিং মধ্যে Elixir

73টি অনুশীলনী

প্যাটার্ন ম্যাচিং সম্পর্কে

এলিক্সির ফাংশন লেখার সময় আমরা প্যাটার্ন ম্যাচিং-এর সাথে অ্যাসার্টিভ স্টাইল অনুসরণ করতে পারি:

def read_file() do
  {:ok, contents} = File.read("hello.txt")
  contents
end
  • প্যাটার্ন ম্যাচিং স্পষ্টভাবে ম্যাচ অপারেটর =/2 দিয়ে করা হয়।

    • অপারেটরের বাম দিকের ডেটার আকৃতি ডান দিকের সাথে মিলে গেলে ম্যাচ সফল হয়।

    • ম্যাচ সফল হলে, বাম দিকের ভ্যারিয়েবলগুলো ডান দিকের মানের সাথে বাইন্ড হয়।

    • আন্ডারস্কোর _ ব্যবহার করে আমরা ওই জায়গাগুলোর মান উপেক্ষা করতে পারি।

      {:ok, number, _} = {:ok, 5, [4.5, 6.3]}
      number
      # => 5 is bound to this variable
      
    • একটি ভ্যারিয়েবল আবার বাইন্ড হওয়া আটকাতে এবং বদলে তার বর্তমান মানের সাথে প্যাটার্ন ম্যাচ করতে পিন অপারেটর ^ ব্যবহার করা যায়।

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • প্যাটার্ন ম্যাচ ফাংশন ক্লজের হেড-এও হতে পারে, যাতে শুধু প্যাটার্নের সাথে মেলে এমন আর্গুমেন্টই ফাংশনটি ইনভোক করে।

  • ফাংশন ক্লজের প্যাটার্ন ম্যাচে ভ্যারিয়েবল বাইন্ড করা যায়।

    defmodule Example do
      def named_function(:a = atom_variable) do
        {atom_variable, 1}
      end
    end
    
    Example.named_function(:a)
    # => {:a, 1}
    # The first function clause matches, so it is invoked
    
    Example.named_function(:b)
    # => ** (FunctionClauseError) no function clause matching in Example.named_function/1
    
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

প্যাটার্ন ম্যাচিং শিখুন

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

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