ভেরিয়েবল স্কোপ (Scope)
স্কোপ মানে হলো একটি ভেরিয়েবলের "সীমানা" বা "অ্যাক্সেস এলাকা"। অর্থাৎ, আপনি একটি ভেরিয়েবল প্রোগ্রামের ঠিক কোন জায়গায় ডিক্লেয়ার করছেন, তার ওপর নির্ভর করে আপনি সেটি কোথায় ব্যবহার করতে পারবেন। এটি মূলত দুই প্রকার—লোকাল এবং গ্লোবাল।
লোকাল ভেরিয়েবল শুধু নির্দিষ্ট ফাংশনের ভেতরে থাকে, আর গ্লোবাল ভেরিয়েবল পুরো প্রোগ্রামের যেকোনো জায়গা থেকে দেখা যায়।
১. লোকাল স্কোপ (Local Scope)
ফাংশনের ভেতরে যে ভেরিয়েবল ডিক্লেয়ার করা হয়, তার কাজ ওই ফাংশন শেষ হওয়ার সাথে সাথেই ফুরিয়ে যায়।
কাজ আমার_ফাংশন() {
পূর্ণসংখ্যা x = ১০; // এটি লোকাল ভেরিয়েবল
দেখাও x;
}
// বাইরে থেকে x ব্যবহার করলে এরর হবে
২. গ্লোবাল স্কোপ (Global Scope)
ফাংশনের বাইরে ডিক্লেয়ার করা ভেরিয়েবলগুলো সব জায়গা থেকে ব্যবহার করা সম্ভব।
পূর্ণসংখ্যা স্কোর = ১০০; // এটি গ্লোবাল ভেরিয়েবল
কাজ আপডেট() {
স্কোর = ২০০; // এখান থেকেও এক্সেস করা যাচ্ছে
}
আপডেট();
দেখাও স্কোর;
৩. বাস্তব উদাহরণ: ইউজার সেশন
একটি গেমে ইউজারের "লাইফ" গ্লোবাল থাকে যাতে যেকোনো লেভেলে তা পরিবর্তন করা যায়।
পূর্ণসংখ্যা লাইফ = ৩;
কাজ আঘাত_পাও() {
লাইফ--;
দেখাও "জীবন বাকি: " >> লাইফ;
নতুনলাইন;
}
আঘাত_পাও();
৪. ইন-ডেপথ উদাহরণ: ফাংশন শ্যাডোয়িং
যদি লোকাল এবং গ্লোবাল ভেরিয়েবলের নাম একই হয়, তবে লোকাল ভেরিয়েবলকে অগ্রাধিকার দেওয়া হয়।
পূর্ণসংখ্যা ক = ১০; // গ্লোবাল
কাজ টেস্ট() {
পূর্ণসংখ্যা ক = ২০; // লোকাল
দেখাও "ফাংশনের ভেতর ক: " >> ক; // আউটপুট: ২০
নতুনলাইন;
}
টেস্ট();
দেখাও "বাইরে ক: " >> ক; // আউটপুট: ১০