Public এবং Private Functions

Modules and Importing (মডিউল এবং ইমপোর্টিং) - এলিক্সির (Elixir) - Computer Programming

302

Public এবং Private Functions in Elixir

Elixir তে ফাংশন ডিফাইন করার সময় আপনি তা public বা private হিসেবে চিহ্নিত করতে পারেন। এই ধারণা মূলত মডিউল বা কোডের অন্তর্নিহিত ফাংশনালিটির অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। Elixir এর public এবং private ফাংশনগুলি কোডের সংগঠন এবং নিরাপত্তা বজায় রাখে, এবং এটি ব্যবহারকারীকে স্পষ্টভাবে নির্ধারণ করতে সাহায্য করে কোন ফাংশন বাইরের কোড থেকে অ্যাক্সেস করা যাবে এবং কোন ফাংশন শুধুমাত্র মডিউলের ভেতরকার ব্যবহারকারীদের জন্য সীমাবদ্ধ থাকবে।


Public Functions

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

বৈশিষ্ট্য:

  • Public functions মডিউল থেকে বাইরের কোড দ্বারা অ্যাক্সেসযোগ্য হয়।
  • মডিউলের API হিসেবে ব্যবহার হয়।
  • সাধারণত বাইরের ব্যবহারের জন্য নির্ধারিত।

ব্যবহার:

defmodule MyModule do
  def greet(name) do
    IO.puts("Hello, #{name}!")
  end
end

এখানে, greet/1 ফাংশনটি public, এবং এটি মডিউলের বাইরের কোড দ্বারা অ্যাক্সেস করা যাবে।

ফাংশন কল:

MyModule.greet("Alice")  # Output: Hello, Alice!

এটি মডিউলটির বাইরের কোড থেকে কল করা যাবে, কারণ এটি public।


Private Functions

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

বৈশিষ্ট্য:

  • Private functions শুধুমাত্র মডিউলের ভেতরেই ব্যবহার করা যেতে পারে।
  • বাইরের কোড থেকে অ্যাক্সেস করা সম্ভব নয়।
  • সাধারণত, অভ্যন্তরীণ ফাংশন বা হেল্পার ফাংশন হিসেবে ব্যবহৃত হয়।

ব্যবহার:

defmodule MyModule do
  def greet(name) do
    IO.puts("Hello, #{name}!")
    format_name(name)
  end

  defp format_name(name) do
    String.capitalize(name)
  end
end

এখানে, format_name/1 ফাংশনটি private এবং এটি শুধু greet/1 ফাংশনের ভিতরে ব্যবহৃত হতে পারে।

ফাংশন কল:

MyModule.greet("alice")  # Output: Hello, alice!
                        # Output: Alice

যেহেতু format_name/1 ফাংশনটি private, আপনি এটি greet/1 এর বাইরে কল করতে পারবেন না।

MyModule.format_name("bob")  # Error: undefined function format_name/1

এটি একটি ত্রুটি (error) দেবে, কারণ format_name/1 ফাংশনটি private এবং বাইরের কোড থেকে অ্যাক্সেসযোগ্য নয়।


Public এবং Private Functions এর মধ্যে পার্থক্য

বৈশিষ্ট্যPublic FunctionsPrivate Functions
অ্যাক্সেসমডিউলের বাইরে থেকেও অ্যাক্সেস করা যায়।শুধুমাত্র মডিউলের ভিতরে অ্যাক্সেসযোগ্য।
ব্যবহারবাইরের কোড বা মডিউল দ্বারা ব্যবহৃত হয়।মডিউলের অভ্যন্তরীণ লজিকের জন্য ব্যবহৃত হয়।
কিওয়ার্ডdef কিওয়ার্ড দিয়ে ডিফাইন করা হয়।defp কিওয়ার্ড দিয়ে ডিফাইন করা হয়।
ফাংশন অ্যাক্সেসমডিউলের বাইরে থেকেও সরাসরি অ্যাক্সেস করা যায়।মডিউলের বাইরের কোড থেকে অ্যাক্সেস করা যায় না।

সারসংক্ষেপ

  • Public Functions হল এমন ফাংশন যা বাইরের কোড থেকে অ্যাক্সেস করা যায় এবং সাধারণত মডিউলের API হিসেবে ব্যবহৃত হয়।
  • Private Functions হল এমন ফাংশন যা শুধুমাত্র মডিউলের ভিতরেই ব্যবহৃত হতে পারে, এবং বাইরের কোডের জন্য অনুপলব্ধ থাকে।

Elixir তে public এবং private ফাংশন ব্যবহারের মাধ্যমে আপনি আপনার কোডের গোপনীয়তা এবং নিরাপত্তা বজায় রাখতে পারেন, এবং মডিউলের অভ্যন্তরীণ এবং বাইরের লজিক পৃথক করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...