Solidity তে ভেরিয়েবল ডিক্লারেশন এবং ডেটা টাইপ ব্যবহারের মাধ্যমে বিভিন্ন ধরনের ডেটা সংরক্ষণ এবং প্রক্রিয়া করা হয়। Solidity, ব্লকচেইন প্ল্যাটফর্মে স্মার্ট কন্ট্রাক্টের জন্য একটি শক্তিশালী ভাষা হওয়ায়, এর ডেটা টাইপ এবং ভেরিয়েবল ব্যবস্থাপনা খুবই গুরুত্বপূর্ণ।
ভেরিয়েবল ডিক্লারেশন
Solidity তে ভেরিয়েবল ডিক্লারেশন মানে হচ্ছে ভেরিয়েবলের নাম এবং তার ডেটা টাইপ নির্ধারণ করা। Solidity তে সাধারণত স্ট্যাটিক টাইপিং ব্যবহৃত হয়, অর্থাৎ প্রতিটি ভেরিয়েবলের ডেটা টাইপ অবশ্যই নির্দিষ্ট করতে হয়।
ভেরিয়েবল ডিক্লারেশন সিনট্যাক্স:
<data_type> <variable_name>;এখানে:
<data_type>হচ্ছে ভেরিয়েবলের টাইপ।<variable_name>হচ্ছে ভেরিয়েবলের নাম।
উদাহরণ:
uint256 public balance;
address public owner;
string public name;এখানে:
uint256হলো অখণ্ড ধন (unsigned integer) যা 256-বিটে থাকে।addressএকটি বিশেষ ডেটা টাইপ যা Ethereum ঠিকানাকে প্রতিনিধিত্ব করে।stringহলো একটি টেক্সট স্ট্রিং।
Solidity ডেটা টাইপ
Solidity তে বেশ কয়েক ধরনের ডেটা টাইপ ব্যবহৃত হয়, যেগুলি মূলত ভেরিয়েবল সংরক্ষণের জন্য ব্যবহৃত হয়। এগুলি দুই ধরনের — মূল ডেটা টাইপ (Value Types) এবং **রেফারেন্স টাইপ (Reference Types)**।
1. মূল ডেটা টাইপ (Value Types)
এটি এমন ডেটা টাইপ যা সরাসরি ভেরিয়েবলের মধ্যে মান সংরক্ষণ করে।
- Integer (ইন্টিজার):
uint(unsigned integer) — ধনাত্মক পূর্ণসংখ্যাint(signed integer) — ধনাত্মক বা ঋণাত্মক পূর্ণসংখ্যাuint8,uint16,uint256ইত্যাদি — নির্দিষ্ট আকারের অখণ্ড ধনint8,int16,int256ইত্যাদি — নির্দিষ্ট আকারের পূর্ণসংখ্যা
উদাহরণ:
uint256 public amount;
int8 public balance;- Boolean (বুলিয়ান):
- এটি দুটি মান গ্রহণ করতে পারে:
trueবাfalse।
- এটি দুটি মান গ্রহণ করতে পারে:
উদাহরণ:
bool public isActive;- Address (এড্রেস):
- এটি Ethereum ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়, যেমন একজন ব্যবহারকারীর ঠিকানা বা কন্ট্রাক্টের ঠিকানা।
উদাহরণ:
address public recipient;- Fixed Size Bytes (ফিক্সড সাইজ বাইট):
bytes1,bytes2, ...,bytes32— নির্দিষ্ট সাইজের বাইট।
উদাহরণ:
bytes32 public data;2. রেফারেন্স টাইপ (Reference Types)
এগুলি এমন ডেটা টাইপ যা ভেরিয়েবলের মধ্যে সরাসরি মান সংরক্ষণ না করে, বরং তার জন্য একটি রেফারেন্স (অথবা পয়েন্টার) সংরক্ষণ করে।
- Array (অ্যারে):
- এটি এক বা একাধিক উপাদান সংরক্ষণ করতে ব্যবহৃত হয়। অ্যারে একক ডেটা টাইপের (যেমন
uint[]) হতে পারে এবং এর আকার স্থির বা পরিবর্তনশীল হতে পারে।
- এটি এক বা একাধিক উপাদান সংরক্ষণ করতে ব্যবহৃত হয়। অ্যারে একক ডেটা টাইপের (যেমন
উদাহরণ:
uint[] public balances; // Dynamic Array
uint[5] public fixedArray; // Fixed Size Array- Struct (স্ট্রাক্ট):
- স্ট্রাক্ট একটি ব্যবহারকারীর সংজ্ঞায়িত ডেটা টাইপ যা একাধিক ভিন্ন ধরনের ডেটা একত্রিত করতে পারে। এটি ব্যবহারকারীর প্রয়োজনীয় ডেটা গঠন করতে সাহায্য করে।
উদাহরণ:
struct Person {
string name;
uint256 age;
}
Person public person;- Mapping (ম্যাপিং):
- এটি একটি অ্যাসোসিয়েটিভ অ্যারে যা কী-ভ্যালু পেয়ার সংরক্ষণ করে। এই ডেটা টাইপের মাধ্যমে কোনও কী এর সাথে একটি মান সংরক্ষণ করা হয়।
উদাহরণ:
mapping(address => uint256) public balances;এখানে, balances হল একটি ম্যাপিং যা address কে একটি uint256 মানের সাথে সংযুক্ত করে।
Solidity তে ভেরিয়েবল শ্রেণী
Solidity তে ভেরিয়েবল দুটি শ্রেণীতে বিভক্ত করা হয়:
- State Variables (স্টেট ভেরিয়েবল):
- স্টেট ভেরিয়েবলগুলি চুক্তির স্টেটের অংশ হিসেবে ব্লকচেইনে সংরক্ষিত থাকে। এগুলি চুক্তির স্মৃতি এবং স্টোরেজে সঞ্চিত থাকে।
উদাহরণ:
uint256 public totalSupply;- Local Variables (লোকাল ভেরিয়েবল):
- লোকাল ভেরিয়েবলগুলি শুধুমাত্র ফাংশনের মধ্যে ব্যবহৃত হয় এবং ফাংশনের এক্সিকিউশন শেষে মুছে যায়। এগুলি স্টোরেজে সংরক্ষিত হয় না।
উদাহরণ:
function setAmount() public {
uint256 amount = 100; // Local Variable
}সারাংশ
Solidity তে ভেরিয়েবল ডিক্লারেশন এবং ডেটা টাইপ ব্যবহৃত হয় বিভিন্ন ধরনের ডেটা সংরক্ষণের জন্য। Solidity একটি স্ট্যাটিক টাইপ ভাষা, যেখানে প্রতিটি ভেরিয়েবলের ডেটা টাইপ নির্ধারণ করতে হয়। এটি বিভিন্ন ডেটা টাইপ ব্যবহার করে স্মার্ট কন্ট্রাক্টে মান সংরক্ষণ, প্রক্রিয়া এবং লেনদেন সম্পাদন করতে সহায়ক।
Read more