Rust হলো একটি সিস্টেম প্রোগ্রামিং ভাষা যা নিরাপত্তা, গতি এবং সমান্তরালতার (concurrency) ওপর বিশেষভাবে গুরুত্ব দেয়। এই ভাষার একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো এর মেমোরি সেফটি, এবং ভেরিয়েবলগুলো এতে বড় ভূমিকা রাখে। এই ব্লগে আমরা হাতে কলমে ভেরিয়েবল নিয়ে আলোচনা করব, যাতে Rust প্রোগ্রামে ভেরিয়েবল নিয়ে তোমার আত্মবিশ্বাস বাড়ে।
ভেরিয়েবল হলো মেমোরিতে ডাটা সংরক্ষণের একটি উপায়, যা প্রোগ্রামের বিভিন্ন স্থানে ব্যবহার করা যায়। Rust এ ভেরিয়েবল ডিফল্টভাবে ইমিউটেবল হয়, অর্থাৎ একবার কোনো মান ভেরিয়েবলে অ্যাসাইন করা হলে তা পরিবর্তন করা যাবে না। এই ইমিউটেবিলিটি বড় প্রোগ্রামে বাগ কমানোর জন্য গুরুত্বপূর্ণ, কারণ এটা নিশ্চিত করে যে ভেরিয়েবলের স্টেট পরিবর্তিত হচ্ছে না যদি না আমরা স্পষ্টভাবে তা পরিবর্তনের অনুমতি দেই।
Rust এ let
কি-ওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লার করা হয়। নিচে একটি সহজ উদাহরণ দেওয়া হলো:
fn main() {
let x = 5;
println!("x এর মান হলো: {}", x);
}
এই উদাহরণে, x
হলো একটি ভেরিয়েবল, যেখানে 5
সংরক্ষিত আছে। যেহেতু x
ইমিউটেবল, তাই এর মান পরবর্তীতে পরিবর্তন করতে গেলে ত্রুটি (error) দেখাবে:
fn main() {
let x = 5;
x = 10; // এখানে ত্রুটি হবে
}
যদি তুমি ভেরিয়েবলের মান পরিবর্তন করতে চাও, তবে mut
কীওয়ার্ড ব্যবহার করে ভেরিয়েবল মিউটেবল করতে হবে:
fn main() {
let mut x = 5;
println!("x এর মান হলো: {}", x);
x = 10; // এটি এখন কাজ করবে
println!("x এর নতুন মান হলো: {}", x);
}
আউটপুট:
x এর মান হলো: 5
x এর নতুন মান হলো: 10
mut
ব্যবহার করে আমরা x
-এর মান ৫ থেকে ১০-এ পরিবর্তন করেছি।
Rust এ শ্যাডোইং নামক একটি বৈশিষ্ট্য আছে, যা একই নামে নতুন ভেরিয়েবল ডিক্লার করতে দেয়। নতুন ভেরিয়েবলটি পুরনো ভেরিয়েবলটিকে শ্যাডো করে, অর্থাৎ এটিকে প্রতিস্থাপন করে। উদাহরণ:
fn main() {
let x = 5;
let x = x + 1; // পূর্বের x-কে শ্যাডো করা হচ্ছে
println!("x এর মান হলো: {}", x);
}
আউটপুট:
x এর মান হলো: 6
মিউটেবিলিটির পরিবর্তে, শ্যাডোইং ভেরিয়েবল পুনঃঅ্যাসাইন করতে সাহায্য করে মিউটেবল না করেই। এটি বিশেষভাবে কার্যকর যখন কোনো মানের উপর পরিবর্তন করে নতুন মান অ্যাসাইন করতে হয়।
Rust এ const
কীওয়ার্ড ব্যবহার করে কনস্ট্যান্ট ঘোষণা করা হয়। কনস্ট্যান্টস সবসময় ইমিউটেবল হয়, এবং এগুলোর টাইপ অবশ্যই উল্লেখ করতে হয়। এগুলো কেবলমাত্র কম্পাইল টাইমে নির্ধারিত মান গ্রহণ করে:
const MAX_POINTS: u32 = 100_000;
fn main() {
println!("সর্বাধিক পয়েন্ট: {}", MAX_POINTS);
}
Rust এ ভেরিয়েবলের স্কোপ বলতে বোঝায় প্রোগ্রামের কোন অংশে সেই ভেরিয়েবল বৈধ এবং অ্যাক্সেসযোগ্য। Rust এর ইউনিক ওনারশিপ সিস্টেমের মাধ্যমে মেমোরি ম্যানেজমেন্ট করা হয়।
fn main() {
{
let y = 42;
println!("y এর মান হলো: {}", y); // এখানে y বৈধ
}
// এখানে y আর বৈধ নয়, তাই এটি আর অ্যাক্সেস করা যাবে না
}
Rust এ যখন কোনো ভেরিয়েবল স্কোপের বাইরে চলে যায়, তখন তার মেমোরি স্বয়ংক্রিয়ভাবে মুক্ত হয়ে যায়। এটি Rust এর মেমোরি সেফটির অংশ, যা নিশ্চিত করে যে কোনো মেমোরি লিক বা ড্যাংলিং পয়েন্টার ঘটবে না।
Rust এ ভেরিয়েবল শুধু ডাটা সংরক্ষণের জন্য নয়। মিউটেবিলিটি, ওনারশিপ, এবং স্কোপ নিয়ে কঠোর নিয়মগুলো তোমার প্রোগ্রামকে নিরাপদ এবং বাগমুক্ত রাখার জন্য সহায়ক। ভেরিয়েবল, কনস্ট্যান্টস এবং শ্যাডোইং নিয়ে বিস্তারিত বুঝলে তুমি Rust প্রোগ্রামিংয়ে দক্ষ হয়ে উঠবে এবং শক্তিশালী অ্যাপ্লিকেশন তৈরি করতে পারবে।
এখন তোমার হাতে ভেরিয়েবল নিয়ে ভালো ধারণা আছে। নিয়মিত প্র্যাকটিস করতে থাক এবং অগ্রগতির জন্য Rust এর ওনারশিপ এবং লাইফটাইম এর মতো উন্নত বিষয়গুলোতে মনোযোগ দাও!
12 views
Please Login to comment