লুয়া একটি ডায়নামিক টাইপিং ভাষা, অর্থাৎ ভ্যারিয়েবল ঘোষণা করার সময় তার টাইপ নির্দিষ্ট করতে হয় না। লুয়া রানের সময় নিজেই ভ্যারিয়েবলের টাইপ নির্ধারণ করে নেয়, যা কোড লেখাকে সহজ এবং নমনীয় করে তোলে। এখানে আমরা লুয়া ভাষায় ভ্যারিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশনের মৌলিক ধারণা নিয়ে আলোচনা করব।
১. ভ্যারিয়েবল ডিক্লারেশন (Variable Declaration)
লুয়া ভাষায় ভ্যারিয়েবল ডিক্লেয়ার করার জন্য সাধারণভাবে কেবল ভ্যারিয়েবলের নাম উল্লেখ করা হয়, এবং মান (value) অ্যাসাইন করার মাধ্যমে ভ্যারিয়েবল তৈরি হয়। টাইপ উল্লেখ করার প্রয়োজন হয় না।
x = 10 -- এখানে x একটি ভ্যারিয়েবল, এবং এটি ১০ এর মান নিচ্ছে।
name = "John" -- name ভ্যারিয়েবল স্ট্রিং মান নিচ্ছে, "John"এখানে, x এবং name দুটি ভ্যারিয়েবল, যাদের টাইপ লুয়া রানের সময় নির্ধারিত হবে। উদাহরণস্বরূপ, x একটি ইন্টিজার এবং name একটি স্ট্রিং হিসেবে স্বীকৃত হবে।
২. ভ্যারিয়েবল ইনিশিয়ালাইজেশন (Variable Initialization)
ভ্যারিয়েবল ইনিশিয়ালাইজেশন হল ভ্যারিয়েবলে প্রথমবার মান (value) অ্যাসাইন করা। লুয়া ভাষায়, ভ্যারিয়েবল তৈরি হওয়ার সঙ্গে সঙ্গে তা ইনিশিয়ালাইজড হয়ে যায়।
উদাহরণ
age = 25 -- age ভ্যারিয়েবল ২৫ মানের সাথে ইনিশিয়ালাইজ হয়েছে
is_active = true -- is_active ভ্যারিয়েবল বুলিয়ান মান (true) এর সাথে ইনিশিয়ালাইজ হয়েছে
greeting = "Hello" -- greeting ভ্যারিয়েবল স্ট্রিং মান (Hello) এর সাথে ইনিশিয়ালাইজ হয়েছেএখানে, তিনটি ভ্যারিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়েছে:
age: এটি একটি নাম্বার টাইপ ভ্যারিয়েবল যার মান ২৫।is_active: এটি একটি বুলিয়ান টাইপ ভ্যারিয়েবল যার মানtrue।greeting: এটি একটি স্ট্রিং টাইপ ভ্যারিয়েবল যার মান"Hello"।
৩. ডায়নামিক টাইপিং (Dynamic Typing)
লুয়া ভাষায় ডায়নামিক টাইপিং ব্যবহৃত হয়, অর্থাৎ ভ্যারিয়েবলের টাইপ রানটাইমে নির্ধারিত হয়। ভ্যারিয়েবলে যে ধরনের মান রাখা হবে তা নির্ধারণের জন্য টাইপ উল্লেখ করার প্রয়োজন নেই।
উদাহরণ
x = 10 -- x এখন একটি ইন্টিজার
x = "Hello" -- এখন x একটি স্ট্রিং হয়ে গেছেএখানে, প্রথমে x একটি ইন্টিজার টাইপ ভ্যারিয়েবল হিসেবে ডিক্লেয়ার করা হয় এবং ১০ মান দেওয়া হয়। পরে, একই ভ্যারিয়েবল x-এ একটি স্ট্রিং "Hello" অ্যাসাইন করা হয়, এবং এটি স্ট্রিং টাইপ হয়ে যায়। লুয়া স্বয়ংক্রিয়ভাবে টাইপ পরিবর্তন করে নেয়।
৪. একাধিক ভ্যারিয়েবল একসাথে ডিক্লেয়ার করা
লুয়া ভাষায় একাধিক ভ্যারিয়েবল একসাথে ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা যেতে পারে।
উদাহরণ
a, b, c = 1, 2, 3 -- একসাথে তিনটি ভ্যারিয়েবল ইনিশিয়ালাইজ করা হয়েছেএখানে, a, b, এবং c তিনটি ভ্যারিয়েবল একসাথে ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়েছে, যেখানে a এর মান ১, b এর মান ২ এবং c এর মান ৩।
৫. নিল (Nil) মান
লুয়া ভাষায় যদি কোনো ভ্যারিয়েবলের মান অ্যাসাইন না করা হয়, তাহলে এটি ডিফল্টভাবে nil মান গ্রহণ করে। nil মানটি লুয়া ভাষায় একটি বিশেষ মান, যা "কোনো মান নেই" নির্দেশ করে।
উদাহরণ
x = nil -- x ভ্যারিয়েবল এখন nil মানে আছে
print(x) -- আউটপুট: nilএখানে, x ভ্যারিয়েবলটি nil মান গ্রহণ করেছে, অর্থাৎ এর কোনো মান নেই।
সারসংক্ষেপ
লুয়া ভাষায় ভ্যারিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন খুবই সরল এবং নমনীয়। ভ্যারিয়েবল ঘোষণা করার সময় টাইপ উল্লেখ করা হয় না এবং রানটাইমে টাইপ নির্ধারণ করা হয়। লুয়া ডায়নামিক টাইপিং ব্যবহার করে, ফলে একটি ভ্যারিয়েবল তার টাইপ এবং মান পরিবর্তন করতে সক্ষম। আপনি একাধিক ভ্যারিয়েবল একসাথে ডিক্লেয়ার এবং ইনিশিয়ালাইজ করতে পারেন, এবং যদি কোনো ভ্যারিয়েবলের মান নির্ধারণ না করা হয় তবে তা nil মান গ্রহণ করে।
Read more