লুয়া (Lua) ভাষার একমাত্র ডেটা স্ট্রাকচার হল **টেবিল (Table)**। এটি অ্যারে, ম্যাপ, এবং অবজেক্টের মতো কাজ করতে পারে এবং লুয়া ভাষায় ডেটা সংগঠিত ও সংরক্ষণের জন্য প্রধান মাধ্যম। টেবিল ব্যবহার করে আমরা এক বা একাধিক মানকে একটি ডেটা স্ট্রাকচার হিসেবে ধারণ করতে পারি।
টেবিল (Table) এর ধারণা
- টেবিল হল লুয়া ভাষায় ডেটা স্ট্রাকচার যা কন্টেইনারের মতো কাজ করে।
- এটি স্নেহপূর্ণভাবে মান এবং কী (key) দ্বারা তৈরি একটি ডেটা স্ট্রাকচার।
- টেবিলের মধ্যে কোন ধরনের ডেটা থাকতে পারে, যেমন: নাম্বার, স্ট্রিং, বুলিয়ান, অন্যান্য টেবিল বা ফাংশন।
- একটি টেবিলের মান অ্যাক্সেস করা হয় কী (key) দ্বারা, তবে এটি অ্যারে (array) হিসেবেও কাজ করতে পারে।
টেবিল তৈরি করা (Creating Tables)
সাধারণ টেবিল (Simple Table)
লুয়া ভাষায় টেবিল তৈরি করার জন্য {} ব্রেসেস ব্যবহার করা হয়।
উদাহরণ:
person = {} -- একটি খালি টেবিল তৈরি করাএখানে, person একটি খালি টেবিল তৈরি করা হয়েছে, কিন্তু এতে কোন মান বা কী অন্তর্ভুক্ত নেই।
টেবিলের মধ্যে ডেটা যুক্ত করা
টেবিলের মধ্যে মান (value) অ্যাসাইন করতে হবে একটি কী (key) ব্যবহার করে।
উদাহরণ:
person = {
name = "Alice", -- কী 'name' এর সাথে মান 'Alice' অ্যাসাইন করা হয়েছে
age = 30 -- কী 'age' এর সাথে মান 30 অ্যাসাইন করা হয়েছে
}এখানে, person টেবিলটি দুটি কী-মান পেয়ার ধারণ করছে:
nameকী এর মান"Alice"ageকী এর মান30
অ্যারে টাইপ টেবিল তৈরি করা
টেবিলকে অ্যারে হিসেবে ব্যবহার করতে হলে আপনি সাধারণত ধারাবাহিক সংখ্যা (1, 2, 3, ...) কী হিসেবে ব্যবহার করতে পারেন। এটি একটি সিম্পল অ্যারে তৈরির উপায়।
উদাহরণ:
fruits = {"Apple", "Banana", "Cherry"} -- একটি অ্যারে টেবিল তৈরি করা
print(fruits[1]) -- আউটপুট: Appleএখানে, fruits টেবিলটি একটি অ্যারে হিসেবে কাজ করছে, যেখানে ৩টি ফলের নাম রয়েছে। অ্যারে-এর প্রথম মান fruits[1] দ্বারা অ্যাক্সেস করা হয়েছে।
মিশ্র ডেটা টাইপের টেবিল (Mixed Data Types Table)
লুয়া টেবিল একসাথে বিভিন্ন ধরনের ডেটা ধারণ করতে পারে, যেমন: সংখ্যার সাথে স্ট্রিং, বুলিয়ান, এবং অন্য টেবিল।
উদাহরণ:
person = {
name = "John", -- স্ট্রিং
age = 25, -- নাম্বার
isStudent = true, -- বুলিয়ান
hobbies = {"Reading", "Swimming", "Cycling"} -- অ্যারে
}এখানে, person টেবিলটি একাধিক ডেটা টাইপ ধারণ করছে:
name: স্ট্রিং"John"age: নাম্বার25isStudent: বুলিয়ানtruehobbies: একটি অ্যারে যেটিতে ৩টি স্ট্রিং মান রয়েছে
টেবিলের মান অ্যাক্সেস করা
টেবিলের মান অ্যাক্সেস করতে আপনি কী ব্যবহার করবেন। অ্যারে ক্ষেত্রে সংখ্যাটি দিয়ে মান অ্যাক্সেস করা যায়।
উদাহরণ:
person = {
name = "Alice",
age = 30
}
print(person.name) -- আউটপুট: Alice
print(person["age"]) -- আউটপুট: 30এখানে, আপনি দুটি ভিন্ন উপায়ে টেবিলের মান অ্যাক্সেস করতে পারেন:
person.nameদ্বারাnameকী-এর মান অ্যাক্সেস করা।person["age"]দ্বারাageকী-এর মান অ্যাক্সেস করা।
টেবিলের মধ্যে ফাংশন যুক্ত করা
লুয়া টেবিলের মধ্যে ফাংশনও রাখতে পারে। এটি সাধারণত অবজেক্টের মতো আচরণ করে, যেখানে ফাংশনকে একটি মেথড হিসেবে ধারণ করা হয়।
উদাহরণ:
person = {
name = "Alice",
age = 30,
greet = function(self)
print("Hello, " .. self.name)
end
}
person:greet() -- আউটপুট: Hello, Aliceএখানে, greet একটি ফাংশন হিসেবে টেবিলের মধ্যে রাখা হয়েছে। self দ্বারা টেবিলের নিজস্ব মান অ্যাক্সেস করা হচ্ছে।
সারসংক্ষেপ
লুয়া ভাষায় টেবিল হল একটি অত্যন্ত শক্তিশালী ডেটা স্ট্রাকচার যা অ্যারে, ম্যাপ এবং অবজেক্টের মতো কাজ করতে পারে। এটি কী এবং মান (key-value pairs) এর ভিত্তিতে কাজ করে। টেবিল তৈরি করার জন্য {} ব্রেসেস ব্যবহার করা হয় এবং এর মধ্যে বিভিন্ন ধরনের ডেটা (সংখ্যা, স্ট্রিং, বুলিয়ান, ফাংশন, অন্যান্য টেবিল) সংরক্ষণ করা যেতে পারে।
- টেবিল ডিক্লারেশন:
{}দিয়ে শুরু। - টেবিলের মধ্যে ডেটা যুক্ত করা: কী এবং মান দ্বারা।
- অ্যারে তৈরি করা: ধারাবাহিক সংখ্যা কী ব্যবহার করা।
- টেবিল অ্যাক্সেস:
.অথবা[]দ্বারা।
এটি লুয়া ভাষায় ডেটা সংগঠিত করার প্রধান উপায়।
Read more