ভেরিয়েবল ডিক্লারেশন (Variable Declaration)
ভেরিয়েবল ডিক্লারেশন হচ্ছে একটি ভেরিয়েবল তৈরি করার প্রক্রিয়া, যেখানে আপনি ভেরিয়েবলটির নাম এবং তার ধরন (data type) নির্ধারণ করেন। রাস্টে, ভেরিয়েবল ডিক্লারেশন দুটি প্রধান উপায়ে করা যায়: immutable এবং mutable ভেরিয়েবল।
Immutable ভেরিয়েবল
ডিফল্টভাবে, রাস্টে ভেরিয়েবলগুলি immutable হয়, অর্থাৎ একবার ভেরিয়েবলটি একটি মান পেলে সেটি আর পরিবর্তন করা যাবে না।
উদাহরণ:
fn main() {
let x: i32 = 10; // Immutable ভেরিয়েবল
println!("x = {}", x);
}এখানে, x একটি i32 টাইপের ভেরিয়েবল, এবং একবার এটি ইনিশিয়ালাইজ হওয়ার পর এটি পরিবর্তন করা যাবে না।
Mutable ভেরিয়েবল
যদি আপনি চান যে ভেরিয়েবলটির মান পরিবর্তন করা যাবে, তবে আপনাকে mut কীওয়ার্ড ব্যবহার করতে হবে। এর মাধ্যমে আপনি ভেরিয়েবলটিকে mutable (পরিবর্তনযোগ্য) বানাতে পারবেন।
উদাহরণ:
fn main() {
let mut x: i32 = 10; // Mutable ভেরিয়েবল
println!("x = {}", x);
x = 20; // এখন x এর মান পরিবর্তন করা যাবে
println!("x = {}", x);
}এখানে, mut কীওয়ার্ডের মাধ্যমে x কে mutable হিসেবে ঘোষণা করা হয়েছে, তাই আপনি এটি পরিবর্তন করতে পারবেন।
ভেরিয়েবল ইনিশিয়ালাইজেশন (Variable Initialization)
ভেরিয়েবল ইনিশিয়ালাইজেশন হচ্ছে একটি ভেরিয়েবলে প্রথমবার মান সেট করা। যখন আপনি ভেরিয়েবল ডিক্লার করেন, তখন সেটি ইনিশিয়ালাইজড হতে হবে। ইনিশিয়ালাইজেশন না করলে, রাস্ট কম্পাইলার একটি ত্রুটি দেখাবে।
ইনিশিয়ালাইজেশন উদাহরণ:
fn main() {
let x: i32 = 5; // ভেরিয়েবল ইনিশিয়ালাইজেশন
println!("x = {}", x);
}এখানে, x ভেরিয়েবলটি i32 টাইপের এবং প্রথমবার মান 5 সেট করা হয়েছে।
টাইপ ইনফারেন্স (Type Inference)
রাস্টে, আপনি যদি টাইপ নির্দিষ্ট না করেন, তবে কম্পাইলার নিজে থেকেই ভেরিয়েবলের টাইপ অনুমান করতে পারে। এটি টাইপ ইনফারেন্স নামে পরিচিত। তবে, এটি শুধুমাত্র সেই পরিস্থিতিতে কার্যকর যেখানে টাইপটি স্পষ্টভাবে নির্ধারণ করা সম্ভব।
উদাহরণ:
fn main() {
let x = 10; // টাইপ ইনফারেন্স, x একটি i32 হবে
println!("x = {}", x);
}এখানে, x ভেরিয়েবলটি i32 টাইপের হবে, কারণ 10 একটি i32 টাইপের মান।
সারাংশ
ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন রাস্টে একটি মৌলিক ধারণা। আপনি যখন একটি ভেরিয়েবল ডিক্লার করেন, তখন এটি টাইপসহ অথবা টাইপ ইনফারেন্সের মাধ্যমে ইনিশিয়ালাইজ করতে পারেন। যদি আপনি চান যে ভেরিয়েবলটি পরিবর্তনযোগ্য হোক, তবে mut কীওয়ার্ড ব্যবহার করতে হবে।
Read more