Importing এবং Aliasing মডিউল
Elixir তে Importing এবং Aliasing একটি মডিউলকে কোডে ব্যবহারের জন্য প্রয়োজনীয় উপায়। এগুলি আপনাকে মডিউলগুলোকে সহজে ব্যবহার করতে সাহায্য করে, বিশেষত যখন আপনি বাহ্যিক মডিউল বা বৃহত্তর মডিউল সংগ্রহ ব্যবহার করছেন। Elixir তে এই দুটি কনসেপ্ট ব্যবহারের মাধ্যমে আপনার কোড আরও পরিষ্কার, কার্যকর এবং সংক্ষিপ্ত হতে পারে।
1. Importing মডিউল
Importing একটি মডিউল এর ফাংশন বা সংজ্ঞা আপনার কোডে সরাসরি ব্যবহার করার জন্য ব্যবহৃত হয়। এটি আপনাকে একটি মডিউলের সমস্ত বা কিছু ফাংশনকে সরাসরি কোডে ব্যবহার করার সুবিধা দেয়, যাতে বার বার মডিউল নাম উল্লেখ করার প্রয়োজন না পড়ে।
সিনট্যাক্স:
import ModuleNameআপনি যদি একটি মডিউল ইম্পোর্ট করেন, তবে ঐ মডিউলের সমস্ত পাবলিক ফাংশন আপনি সরাসরি ব্যবহার করতে পারবেন, এবং মডিউলের নাম বার বার লিখতে হবে না।
উদাহরণ:
defmodule Math do
def add(a, b), do: a + b
def subtract(a, b), do: a - b
end
defmodule Example do
import Math
def calculate do
IO.puts add(5, 3) # সরাসরি add ফাংশন ব্যবহার করা যাচ্ছে, Math মডিউল উল্লেখ না করেই
IO.puts subtract(10, 4) # একইভাবে subtract ফাংশন ব্যবহার করা যাচ্ছে
end
endএখানে Math মডিউল থেকে add এবং subtract ফাংশনগুলি Example মডিউলে ইম্পোর্ট করা হয়েছে। এখন Example মডিউলে Math এর ফাংশন ব্যবহার করার জন্য Math.add/2 বা Math.subtract/2 লেখার প্রয়োজন নেই।
নোট:
- আপনি যদি মডিউলটি ইম্পোর্ট করেন, তবে মডিউলের public ফাংশনগুলি সরাসরি ব্যবহার করতে পারবেন।
- তবে যদি আপনি মডিউলটি ইম্পোর্ট না করেন, তবে মডিউল নাম লিখে ফাংশন কল করতে হবে, যেমন
Math.add/2।
2. Aliasing মডিউল
Aliasing মডিউল মানে হলো একটি মডিউলের দীর্ঘ নামের জন্য একটি ছোট নাম দেওয়া। এটি আপনাকে একটি মডিউলকে একটি সহজ এবং সংক্ষিপ্ত নামে রেফারেন্স করতে সহায়তা করে, যা কোড লিখতে এবং পড়তে সুবিধাজনক।
সিনট্যাক্স:
alias ModuleName, as: NewNameএখানে, ModuleName হচ্ছে মডিউলের আসল নাম, এবং NewName হচ্ছে আপনি যে সংক্ষিপ্ত নামটি দিতে চান।
উদাহরণ:
defmodule MathOperations do
def add(a, b), do: a + b
def subtract(a, b), do: a - b
end
defmodule Example do
alias MathOperations, as: M # MathOperations মডিউলকে M নামে ছোট করে আলিয়াস করা
def calculate do
IO.puts M.add(5, 3) # M হিসেবে ব্যবহার হচ্ছে MathOperations
IO.puts M.subtract(10, 4) # একইভাবে M এর মাধ্যমে MathOperations এর ফাংশন ব্যবহার করা হচ্ছে
end
endএখানে, MathOperations মডিউলকে M নামে সংক্ষিপ্ত করে ব্যবহার করা হয়েছে। এখন MathOperations.add/2 এবং MathOperations.subtract/2 এর পরিবর্তে আপনি সরাসরি M.add/2 এবং M.subtract/2 লিখতে পারবেন।
ফায়দা:
- Aliasing আপনাকে বড় মডিউলের নামগুলো সংক্ষিপ্ত ও পরিষ্কারভাবে ব্যবহার করতে সাহায্য করে।
- কোড লেখা আরও দ্রুত হয় এবং পাঠযোগ্যতা বৃদ্ধি পায়, বিশেষত যখন একটি মডিউলের নাম অনেক বড় হয়।
- Aliasing ব্যবহার করলে মডিউল রেফারেন্স দ্রুত এবং সহজ হয়।
Importing এবং Aliasing এর মধ্যে পার্থক্য
- Importing ব্যবহার করলে আপনি মডিউল এর সমস্ত পাবলিক ফাংশন বা শুধুমাত্র কিছু নির্দিষ্ট ফাংশন আপনার কোডে সরাসরি ব্যবহার করতে পারবেন, এবং মডিউলের নাম লিখে কল করার দরকার হবে না।
- Aliasing ব্যবহার করলে আপনি মডিউলের দীর্ঘ নামকে একটি ছোট নাম দিয়ে পরিবর্তন করতে পারেন, যাতে আপনি ছোট নাম ব্যবহার করে সেই মডিউলকে রেফারেন্স করতে পারেন।
3. Importing Specific Functions
আপনি যদি পুরো মডিউল ইম্পোর্ট না করে শুধুমাত্র কিছু নির্দিষ্ট ফাংশনই ইম্পোর্ট করতে চান, তবে সেটা আপনি only অপশন ব্যবহার করে করতে পারেন।
উদাহরণ:
defmodule Math do
def add(a, b), do: a + b
def subtract(a, b), do: a - b
def multiply(a, b), do: a * b
end
defmodule Example do
import Math, only: [add: 2, subtract: 2] # শুধু add এবং subtract ফাংশনই ইম্পোর্ট করা হয়েছে
def calculate do
IO.puts add(5, 3) # add ফাংশন ব্যবহার করা যাবে
IO.puts subtract(10, 4) # subtract ফাংশন ব্যবহার করা যাবে
# IO.puts multiply(5, 3) # multiply ফাংশনটি এখানে কাজ করবে না, কারণ এটি ইম্পোর্ট করা হয়নি
end
endএখানে, Math মডিউল থেকে শুধু add এবং subtract ফাংশনগুলি ইম্পোর্ট করা হয়েছে, এবং multiply ফাংশনটি ইম্পোর্ট করা হয়নি।
সারসংক্ষেপ
- Importing ব্যবহার করলে আপনি মডিউলের সমস্ত ফাংশন বা কিছু নির্দিষ্ট ফাংশন সরাসরি আপনার কোডে ব্যবহার করতে পারেন।
- Aliasing আপনাকে বড় মডিউল নামকে একটি সংক্ষিপ্ত নামে রূপান্তর করতে সহায়তা করে, যা কোড পড়া ও লিখার জন্য সহজ হয়।
- Importing এবং Aliasing একসাথে ব্যবহার করলে Elixir কোড আরও পরিষ্কার এবং সহজবোধ্য হয়।
Read more