Solidity তে Array হলো একটি ডেটা স্ট্রাকচার যা একই ধরনের একাধিক মান (ভ্যালু) ধারণ করতে সক্ষম। এটি একটি সোজাসুজি সংগ্রহস্থল, যেখানে আপনি একই টাইপের একাধিক উপাদান সংরক্ষণ করতে পারেন। Solidity তে দুই ধরনের Array ব্যবহৃত হয়: Fixed-size arrays এবং Dynamic arrays। প্রতিটির নিজস্ব বৈশিষ্ট্য রয়েছে এবং এগুলি বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে।
1. Fixed-size Arrays
Fixed-size arrays হলো এমন ধরনের অ্যারে, যার সাইজ একটি নির্দিষ্ট মানে স্থির থাকে এবং একবার সেট করা হলে তার সাইজ পরিবর্তন করা যায় না। এই ধরনের অ্যারে কন্ট্রাক্টের কম্পাইল টাইমে নির্ধারণ করা হয়।
উদাহরণ:
pragma solidity ^0.8.0;
contract FixedArrayExample {
uint[3] public fixedArray; // ৩টি উপাদান ধারণ করতে সক্ষম
constructor() {
fixedArray[0] = 1;
fixedArray[1] = 2;
fixedArray[2] = 3;
}
function getElement(uint index) public view returns (uint) {
return fixedArray[index];
}
}ব্যাখ্যা:
fixedArrayএকটি Fixed-size array, যা ৩টিuintমান ধারণ করতে পারে।- অ্যারের সাইজ একবার নির্ধারণ করা হলে, তা আর পরিবর্তন করা যায় না। এখানে
fixedArray[3]দ্বারা এটি ৩টি উপাদান ধারণ করবে। getElementফাংশনটি অ্যারের নির্দিষ্ট ইনডেক্স থেকে মান ফেরত দেয়।
Fixed-size Arrays এর বৈশিষ্ট্য:
- অ্যারের সাইজ কনস্ট্রাক্টরের মধ্যে অথবা ডিফাইন করার সময় নির্ধারিত হয় এবং পরে পরিবর্তন করা যায় না।
- অ্যারের সাইজ স্থির হওয়ায় এটি কম গ্যাস খরচ করে।
2. Dynamic Arrays
Dynamic arrays হলো এমন অ্যারে, যার সাইজ চলাকালীন সময়ে পরিবর্তনযোগ্য থাকে। এর মানে হলো আপনি অ্যারের মধ্যে উপাদান যোগ বা মুছে দিতে পারেন, এবং অ্যারের সাইজ সময়ের সাথে সাথে পরিবর্তিত হতে পারে। এই ধরনের অ্যারের সাইজ পরিবর্তনশীল এবং রানটাইমে তা বাড়ানো বা কমানো যায়।
উদাহরণ:
pragma solidity ^0.8.0;
contract DynamicArrayExample {
uint[] public dynamicArray; // ডায়নামিক অ্যারে
function addElement(uint _element) public {
dynamicArray.push(_element); // নতুন উপাদান যোগ করা
}
function removeElement() public {
dynamicArray.pop(); // সর্বশেষ উপাদান মুছে ফেলা
}
function getElement(uint index) public view returns (uint) {
return dynamicArray[index];
}
function getArrayLength() public view returns (uint) {
return dynamicArray.length; // অ্যারের সাইজ পাওয়া
}
}ব্যাখ্যা:
dynamicArrayএকটি Dynamic array, যার সাইজ বাড়ানো বা কমানো সম্ভব।addElementফাংশনটি নতুন উপাদান যোগ করতেpushমেথড ব্যবহার করে।removeElementফাংশনটি অ্যারের সর্বশেষ উপাদানটি মুছে ফেলতেpopমেথড ব্যবহার করে।getArrayLengthফাংশনটি অ্যারের বর্তমান সাইজ ফেরত দেয়।
Dynamic Arrays এর বৈশিষ্ট্য:
- অ্যারের সাইজ রানটাইমে পরিবর্তন হতে পারে। এটি নতুন উপাদান যোগ বা মুছে ফেলার মাধ্যমে সম্ভব।
pushওpopমেথড ব্যবহার করে উপাদান অ্যারে থেকে যোগ বা মুছে ফেলা যায়।- ডায়নামিক অ্যারের সাইজ নির্দিষ্ট করা সম্ভব নয়, এটি চলমান সময়ে পরিবর্তিত হতে পারে।
3. ফixed এবং Dynamic Arrays এর মধ্যে পার্থক্য
| বিশেষত্ব | Fixed-size Arrays | Dynamic Arrays |
|---|---|---|
| সাইজ | সাইজ একবার নির্ধারণ করার পর পরিবর্তন করা যায় না। | সাইজ রানটাইমে পরিবর্তিত হতে পারে। |
| ডিক্লেয়ারেশন | সাইজ নির্ধারণ করার সময়ই অ্যারে ডিক্লেয়ার করতে হয়। | সাইজ এক্সপ্লিসিটভাবে নির্ধারণের প্রয়োজন নেই। |
| ডেটা ম্যানিপুলেশন | নতুন উপাদান যোগ বা মুছে ফেলা যায় না। | উপাদান যোগ বা মুছে ফেলা যায়। |
| গ্যাস খরচ | কম গ্যাস খরচ হয় কারণ সাইজ স্থির। | বেশি গ্যাস খরচ হয় কারণ সাইজ পরিবর্তনশীল। |
সারাংশ
Solidity তে Fixed-size arrays এবং Dynamic arrays দুটি আলাদা ডেটা স্ট্রাকচার, যেখানে Fixed-size arrays এর সাইজ একবার নির্ধারণ করা হলে পরিবর্তন করা যায় না, কিন্তু Dynamic arrays এর সাইজ চলাকালীন সময়ে পরিবর্তিত হতে পারে। Fixed-size arrays সাধারণত কম গ্যাস খরচ করে এবং সহজ ব্যবহারের জন্য উপযোগী, তবে Dynamic arrays ব্যবহার করে অনেক বেশি ফ্লেক্সিবিলিটি পাওয়া যায়, যেমন উপাদান যোগ করা বা মুছে ফেলা। Solidity তে অ্যারের এই দুটি ধরনের ব্যবহারের মাধ্যমে আপনি আপনার প্রোজেক্টের প্রয়োজন অনুসারে সঠিক ডেটা স্ট্রাকচার নির্বাচন করতে পারেন।
Read more