cond, with এবং try এর ব্যবহার

Control Flow Statements (নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস) - এলিক্সির (Elixir) - Computer Programming

341

cond, with, এবং try এর ব্যবহার Elixir তে

Elixir একটি ফাংশনাল প্রোগ্রামিং ভাষা, এবং এতে রয়েছে কিছু বিশেষ কন্ট্রোল ফ্লো স্টেটমেন্ট, যেগুলির মধ্যে cond, with, এবং try খুবই গুরুত্বপূর্ণ। এই তিনটি স্টেটমেন্ট ব্যবহারের মাধ্যমে আপনি কন্ডিশনাল লজিক, প্যাটার্ন ম্যাচিং এবং এরর হ্যান্ডলিং খুব সহজভাবে করতে পারবেন। চলুন, এই তিনটি স্টেটমেন্টের ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করি।


১. cond (Conditional)

cond হল Elixir এর একটি কন্ডিশনাল কন্ট্রোল স্টেটমেন্ট, যা একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়। এটি if বা case স্টেটমেন্টের তুলনায় আরও সুবিধাজনক, কারণ আপনি একাধিক শর্ত পরীক্ষা করতে পারেন এবং প্রতিটি শর্তের জন্য একটি আউটপুট নির্ধারণ করতে পারেন।

বৈশিষ্ট্য:

  • cond একাধিক শর্ত চেক করার জন্য ব্যবহৃত হয়।
  • এটি true মেলা শর্তের জন্য কার্যকর কোড ব্লক চালায়।
  • cond এর মধ্যে যদি কোন শর্ত মেলেনা, তাহলে একটি else ব্লকও থাকতে পারে।

ব্যবহার:

cond do
  x > 0 -> IO.puts("Positive")
  x < 0 -> IO.puts("Negative")
  x == 0 -> IO.puts("Zero")
  true -> IO.puts("Default case")
end

উদাহরণ:

x = 5
cond do
  x > 0 -> IO.puts("x is positive")
  x < 0 -> IO.puts("x is negative")
  x == 0 -> IO.puts("x is zero")
  true -> IO.puts("This will never happen")
end

এখানে, cond এর মধ্যে শর্ত গুলি পরীক্ষা করা হবে এবং প্রথম সত্য শর্তটি পূর্ণ হলে সংশ্লিষ্ট কোড চালানো হবে। true শর্তটি সবসময় সঠিক, সুতরাং এটি ডিফল্ট হিসেবে রাখা হয়।


২. with (Pattern Matching in Pipelines)

with Elixir এ একটি সুন্দর প্যাটার্ন ম্যাচিং কন্ট্রোল স্টেটমেন্ট যা পিপলাইনে কাজ করার সময় ব্যবহার করা হয়। এটি সাধারণত অনেক গুলো প্যাটার্ন বা ফলাফল যাচাই করতে ব্যবহৃত হয়, এবং এটি হ্যান্ডলিং এর জন্য খুবই উপকারী।

বৈশিষ্ট্য:

  • with একাধিক প্যাটার্নের মাধ্যমে নির্দিষ্ট কোড ব্লককে অনুসরণ করে।
  • এটি error handling এর জন্য খুব কার্যকর।
  • একটি সফল প্যাটার্ন মেলালে do ব্লক চালানো হয়, অন্যথায় একটি else ব্লক চালানো হতে পারে।

ব্যবহার:

with {:ok, value} <- function1(),
     {:ok, result} <- function2(value) do
  IO.puts("Success: #{result}")
else
  {:error, reason} -> IO.puts("Error: #{reason}")
end

উদাহরণ:

defmodule MyModule do
  def process_data do
    with {:ok, file} <- File.open("data.txt"),
         {:ok, contents} <- IO.read(file, :all) do
      IO.puts("File contents: #{contents}")
    else
      {:error, reason} -> IO.puts("Failed to read file: #{reason}")
    end
  end
end

MyModule.process_data()

এখানে, with ব্যবহার করে আমরা প্যাটার্ন ম্যাচিং এর মাধ্যমে একটি ফাইল ওপেন করা এবং তারপর তার কন্টেন্ট পড়া চেষ্টা করছি। যদি কোনো প্যাটার্ন ম্যাচ না করে, তবে else ব্লক চালানো হবে।


৩. try (Error Handling)

try Elixir তে একটি গুরুত্বপূর্ণ কন্ট্রোল স্টেটমেন্ট যা error handling এর জন্য ব্যবহৃত হয়। try ব্লকের মধ্যে যদি কোনো ত্রুটি ঘটে, তবে আপনি তা rescue বা after ব্লক ব্যবহার করে ধরতে এবং পরিচালনা করতে পারেন।

বৈশিষ্ট্য:

  • try একটি কোড ব্লক চালানোর চেষ্টা করে।
  • যদি এর মধ্যে কোনো ত্রুটি ঘটে, তবে rescue ব্লক তা ধরতে পারে এবং আপনি ত্রুটির জন্য কাস্টম অ্যাকশন নিতে পারেন।
  • after ব্লক ব্যবহার করে আপনি কোড চালানোর পরে কিছু ফাইনাল অপারেশন করতে পারেন।

ব্যবহার:

try do
  # risky code
  1 / 0  # This will raise an error (division by zero)
rescue
  ArithmeticError -> IO.puts("An arithmetic error occurred")
end

উদাহরণ:

defmodule MyModule do
  def safe_division do
    try do
      1 / 0
    rescue
      ArithmeticError -> IO.puts("Cannot divide by zero")
    after
      IO.puts("Execution completed")
    end
  end
end

MyModule.safe_division()

এখানে, try ব্লকের মধ্যে 1 / 0 অপারেশন একটি ত্রুটি ঘটাবে, যা rescue ব্লক দ্বারা ধরবে এবং "Cannot divide by zero" মেসেজটি প্রিন্ট করবে। after ব্লকটি শেষের কাজ যেমন ক্লিন-আপ বা লগিং করতে ব্যবহৃত হয়, এবং এটি সব সময় চালানো হয়।


সারসংক্ষেপ

স্টেটমেন্টবর্ণনাব্যবহার
condএকাধিক শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। সত্য শর্তের জন্য কোড চালানো হয়।কন্ডিশনাল লজিক
withপ্যাটার্ন ম্যাচিং এবং error handling এর জন্য ব্যবহৃত হয়। একাধিক প্যাটার্ন যাচাই করা হয়।প্যাটার্ন ম্যাচিং
tryত্রুটি ধরার জন্য ব্যবহৃত হয়, যেখানে rescue এবং after ব্লক ব্যবহার করা হয়।এরর হ্যান্ডলিং

এই তিনটি স্টেটমেন্ট এলিক্সির কোডে লজিক এবং এরর হ্যান্ডলিং সহজ এবং কার্যকরীভাবে করতে সাহায্য করে, বিশেষ করে যখন আপনি একাধিক শর্ত বা প্যাটার্ন পরীক্ষা করছেন বা ত্রুটি পরিচালনা করছেন।

Content added By
Promotion

Are you sure to start over?

Loading...