Local এবং Global ভেরিয়েবল হল দুটি গুরুত্বপূর্ণ ধারণা, যা প্রোগ্রামিং ভাষায় ভেরিয়েবলের স্কোপ (scope) এবং জীবনকাল (lifetime) নির্ধারণ করে। LISP সহ সকল প্রোগ্রামিং ভাষায় এই দুটি ভেরিয়েবল আলাদা ভূমিকা পালন করে।
এখানে Local এবং Global ভেরিয়েবলের মধ্যে পার্থক্য তুলে ধরা হলো:
১. Global Variables (গ্লোবাল ভেরিয়েবল)
Global Variables হল এমন ভেরিয়েবল, যেগুলি প্রোগ্রামের মধ্যে যে কোনো জায়গায় অ্যাক্সেস করা যেতে পারে, অর্থাৎ এগুলির স্কোপ পুরো প্রোগ্রাম জুড়ে থাকে। আপনি যখন একটি ভেরিয়েবলকে গ্লোবাল হিসেবে ঘোষণা করেন, তখন সেই ভেরিয়েবলটি প্রোগ্রামের যে কোনো ফাংশন বা স্কোপে ব্যবহৃত হতে পারে।
Global Variables এর বৈশিষ্ট্য:
- স্কোপ: গ্লোবাল ভেরিয়েবলটির স্কোপ পুরো প্রোগ্রাম জুড়ে থাকে। অর্থাৎ, একবার এক ভেরিয়েবল গ্লোবাল হলে তা প্রোগ্রামের যেকোনো জায়গা থেকে অ্যাক্সেস করা সম্ভব।
- অ্যাক্সেস: গ্লোবাল ভেরিয়েবল ফাংশনের বাইরেও অ্যাক্সেস করা যায় এবং প্রোগ্রামের যে কোনো অংশে তা পরিবর্তন করা সম্ভব।
- জীবনকাল: গ্লোবাল ভেরিয়েবল প্রোগ্রাম চলাকালীন জীবিত থাকে এবং প্রোগ্রাম বন্ধ না হওয়া পর্যন্ত তার মান সংরক্ষিত থাকে।
Global Variables ব্যবহার উদাহরণ:
(setq x 10) ; গ্লোবাল ভেরিয়েবল x ডিফাইন করা হচ্ছে
(defun display-x ()
(print x)) ; গ্লোবাল x ভেরিয়েবল এক্সেস করা হচ্ছে
(display-x) ; আউটপুট: 10এখানে, x একটি গ্লোবাল ভেরিয়েবল, যা display-x ফাংশন থেকে অ্যাক্সেস করা হয়েছে। যেহেতু এটি গ্লোবাল, তাই x যে কোনো ফাংশন থেকে এক্সেস করা সম্ভব।
২. Local Variables (লোকাল ভেরিয়েবল)
Local Variables হল এমন ভেরিয়েবল, যেগুলি শুধুমাত্র একটি নির্দিষ্ট ফাংশনের মধ্যে সীমাবদ্ধ থাকে। একটি লোকাল ভেরিয়েবল শুধুমাত্র তার সংজ্ঞায়িত ফাংশনের মধ্যে ব্যবহৃত হতে পারে এবং তার বাইরের কোড থেকে এক্সেস করা সম্ভব নয়। লোকাল ভেরিয়েবল শুধুমাত্র ফাংশনের চলমান স্কোপে থাকে এবং ফাংশনটির এক্সিকিউশন শেষ হওয়ার পর তার জীবনকাল শেষ হয়ে যায়।
Local Variables এর বৈশিষ্ট্য:
- স্কোপ: লোকাল ভেরিয়েবলটির স্কোপ শুধুমাত্র সেই ফাংশনের মধ্যে থাকে যেখানে সেটি ডিফাইন করা হয়। আপনি যদি অন্য ফাংশন থেকে এটি অ্যাক্সেস করতে চান, তবে তা সম্ভব হবে না।
- অ্যাক্সেস: লোকাল ভেরিয়েবল শুধুমাত্র তার ডিফাইন করা ফাংশনের মধ্যে অ্যাক্সেসযোগ্য।
- জীবনকাল: লোকাল ভেরিয়েবলটি ফাংশনের জীবনকাল অনুসারে জীবিত থাকে। ফাংশনটি শেষ হয়ে গেলে, লোকাল ভেরিয়েবলটির মান মুছে যায় এবং তা আর অ্যাক্সেসযোগ্য থাকে না।
Local Variables ব্যবহার উদাহরণ:
(defun calculate-sum (a b)
(setq sum (+ a b)) ; sum একটি লোকাল ভেরিয়েবল
(print sum))
(calculate-sum 3 5) ; আউটপুট: 8এখানে, sum একটি লোকাল ভেরিয়েবল, যা calculate-sum ফাংশনের মধ্যে ডিফাইন করা হয়েছে। এটি ফাংশনের বাইরে এক্সেস করা যাবে না এবং শুধুমাত্র এই ফাংশনেই ব্যবহৃত হতে পারে।
৩. Local এবং Global Variables এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Local Variables | Global Variables |
|---|---|---|
| স্কোপ | লোকাল ভেরিয়েবল শুধুমাত্র তার ডিফাইন করা ফাংশনের মধ্যে থাকে। | গ্লোবাল ভেরিয়েবল পুরো প্রোগ্রাম জুড়ে অ্যাক্সেসযোগ্য। |
| অ্যাক্সেস | লোকাল ভেরিয়েবল ফাংশনের বাইরে অ্যাক্সেস করা সম্ভব নয়। | গ্লোবাল ভেরিয়েবল যেকোনো ফাংশন বা কোড থেকে অ্যাক্সেস করা যায়। |
| জীবনকাল | ফাংশন এক্সিকিউট হওয়ার সময়ই এটি থাকে, তারপর মুছে যায়। | প্রোগ্রাম চলাকালীন সময়ের মধ্যে এটি জীবিত থাকে। |
| মান পরিবর্তন | লোকাল ভেরিয়েবল শুধুমাত্র তার ফাংশনে পরিবর্তন করা যায়। | গ্লোবাল ভেরিয়েবল প্রোগ্রামের যে কোনো জায়গায় পরিবর্তন করা যায়। |
| প্রভাব | শুধু সংশ্লিষ্ট ফাংশনের উপর প্রভাব ফেলে। | পুরো প্রোগ্রাম বা যেকোনো ফাংশনে প্রভাব ফেলে। |
৪. কখন কোনটি ব্যবহার করবেন?
- Local Variables ব্যবহার করুন যখন আপনি এমন ভেরিয়েবল চাচ্ছেন যার মান শুধুমাত্র একটি নির্দিষ্ট ফাংশনের মধ্যে প্রয়োজন। এটি কোডকে আরও পরিষ্কার এবং নিরাপদ করে, কারণ আপনি জানেন যে ওই ফাংশনের বাইরে ভেরিয়েবলটি পরিবর্তন হবে না।
- Global Variables ব্যবহার করুন যখন আপনি এমন ভেরিয়েবল চান যা প্রোগ্রামের একাধিক অংশে ব্যবহৃত হবে। তবে, গ্লোবাল ভেরিয়েবল ব্যবহারের ক্ষেত্রে সতর্ক থাকতে হবে, কারণ এটি প্রোগ্রামের অন্যান্য অংশে অনাকাঙ্ক্ষিত পরিবর্তন ঘটাতে পারে।
সারসংক্ষেপ
Local এবং Global Variables LISP প্রোগ্রামিং ভাষার গুরুত্বপূর্ণ দুটি ধারণা। Local Variables শুধুমাত্র তাদের ডিফাইন করা ফাংশনের মধ্যে ব্যবহৃত হয় এবং তার বাইরের অংশে এক্সেস করা যায় না, যেখানে Global Variables পুরো প্রোগ্রাম জুড়ে অ্যাক্সেসযোগ্য থাকে। দুটি ভেরিয়েবল ব্যবহারের উপযুক্ত জায়গা চয়ন করলে প্রোগ্রাম আরও কার্যকরী এবং সচল হবে।
Read more