Shadowing (শ্যাডোইং)
রাস্টে Shadowing এমন একটি বৈশিষ্ট্য যেখানে একটি ভেরিয়েবল একই নামের অন্য একটি ভেরিয়েবল দ্বারা আচ্ছাদিত (shadowed) হয়ে যায়। এতে পুরানো ভেরিয়েবলটি ওভাররাইড হয়ে যায় এবং নতুন ভেরিয়েবল তৈরি করা হয়। এটি ভেরিয়েবলের টাইপ পরিবর্তন করতে সাহায্য করে, যার ফলে ভেরিয়েবলটি অন্য টাইপের মান ধারণ করতে পারে।
Shadowing এর মূল সুবিধা:
- টাইপ পরিবর্তন: আপনি একটি ভেরিয়েবলের মানের টাইপ পরিবর্তন করতে পারেন।
- নতুন ভেরিয়েবল তৈরি: আপনি একে অপরকে ভেরিয়েবল নামের সাহায্যে পুনরায় ব্যবহার করতে পারেন, যা কোডে ক্লিনলিনেস এবং পরিষ্কারতা আনে।
উদাহরণ:
fn main() {
let x = 5; // প্রথম x ভেরিয়েবল
println!("The value of x is: {}", x); // ৫
let x = x + 1; // নতুন x ভেরিয়েবল
println!("The value of x is: {}", x); // ৬
let x = "Hello, Rust!"; // আবার নতুন টাইপে x ভেরিয়েবল
println!("The value of x is: {}", x); // Hello, Rust!
}ব্যাখ্যা:
- প্রথমে,
xভেরিয়েবলটি একটি পূর্ণসংখ্যা (5) ধারণ করে। - পরে,
xএর মান বৃদ্ধি করা হয় এবং আবারx-এর মান পরিবর্তিত হয়ে যায়। - তারপর,
xআবার একটি স্ট্রিং ধারণ করতে পারে।
এখানে, x একটি নতুন টাইপ গ্রহণ করেছে এবং পুরনো x ভেরিয়েবলটি "shadow" হয়ে গেছে, তাই আমরা শ্যাডোইং ব্যবহার করছি।
Constants (ধ্রুবক)
রাস্টে Constants হল এমন মান যা একবার নির্ধারণের পর আর পরিবর্তন করা যায় না। ধ্রুবক সাধারণত সব জায়গায় ব্যবহার করা হয়, যেমন গণনা বা ফিক্সড মান যা প্রোগ্রামটি চলাকালীন সময়ে অপরিবর্তিত থাকে। ধ্রুবক একটি নির্দিষ্ট টাইপের হতে হবে এবং এগুলি সর্বদা বড় হাতের অক্ষরে (uppercase) লেখা হয়।
Constants এর প্রধান বৈশিষ্ট্য:
- Type Annotation (টাইপ অ্যানোটেশন): একটি ধ্রুবকের অবশ্যই টাইপ উল্লেখ করতে হবে।
- Global Scope: Constants গ্লোবাল স্কোপে ব্যবহার করা যেতে পারে এবং এগুলি কার্যকরীভাবে যেকোনো জায়গায় অ্যাক্সেস করা যায়।
উদাহরণ:
const MAX_POINTS: i32 = 100_000;
const PI: f64 = 3.14159;
fn main() {
println!("The maximum points are: {}", MAX_POINTS);
println!("The value of pi is: {}", PI);
}ব্যাখ্যা:
এখানে, MAX_POINTS এবং PI দুটি ধ্রুবক, যেগুলির মান প্রোগ্রাম চলাকালীন সময়ে অপরিবর্তিত থাকে।
MAX_POINTSএকটি পূর্ণসংখ্যা (i32) যা 100,000।PIএকটি ভাসমান সংখ্যা (f64) যা 3.14159।
এগুলি কোথাও পরিবর্তিত হতে পারে না, এবং এগুলি গ্লোবাল স্কোপে ব্যবহারযোগ্য।
Shadowing এবং Constants এর মধ্যে পার্থক্য
- Shadowing একটি ভেরিয়েবল বা মানকে অন্য একটি মান বা টাইপ দ্বারা আচ্ছাদিত করে, তবে এটি local scope-এ ঘটে এবং টাইপ পরিবর্তন করা যায়।
- Constants হল অপরিবর্তিত মান, যা সাধারণত প্রোগ্রাম জুড়ে একাধিক জায়গায় ব্যবহার করা হয় এবং এর global scope থাকে।
সারাংশ
রাস্টে Shadowing এবং Constants দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা কোডের মান পরিচালনা এবং প্রোগ্রামের পোর্টেবিলিটি এবং সঠিকতা নিশ্চিত করতে সাহায্য করে।
- Shadowing ভেরিয়েবলগুলির মান পরিবর্তন করতে সহায়ক, যখন Constants গ্লোবালভাবে অপরিবর্তিত মান ধারণ করতে ব্যবহৃত হয়।
- এদের সাহায্যে কোডের পঠনযোগ্যতা, কার্যকারিতা এবং সুরক্ষা বৃদ্ধি পায়।
Read more