রুবি একটি উচ্চ স্তরের, ডাইনামিক এবং অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং ভাষা। রুবির কোড স্ট্রাকচার অত্যন্ত সোজা এবং সহজবোধ্য, যা নতুন প্রোগ্রামারদের জন্য কোড লেখাকে আরও সহজ করে তোলে। রুবি ভাষায় কোড লেখার জন্য কিছু মৌলিক নিয়ম এবং কনভেনশন অনুসরণ করতে হয়, যেগুলি নিচে বিস্তারিতভাবে আলোচনা করা হলো।
১. বেসিক কোড স্ট্রাকচার
রুবির কোড স্ট্রাকচার খুবই সহজ এবং সোজা, যেখানে সাধারণত পরবর্তী স্টেটমেন্টগুলি "নিউ লাইন" দিয়ে আলাদা করা হয়। রুবিতে সেমিকোলন ; এর ব্যবহার প্রয়োজনীয় নয়, তবে যদি এক লাইনে একাধিক স্টেটমেন্ট থাকে তবে সেমিকোলন ব্যবহার করা যেতে পারে।
উদাহরণ:
puts "Hello, World!" # এটি একটি সাধারণ স্টেটমেন্ট২. ভেরিয়েবল ডিক্লেয়ারেশন
রুবিতে ভেরিয়েবল ঘোষণা করতে টাইপ নির্ধারণের প্রয়োজন নেই, এবং এটি স্বয়ংক্রিয়ভাবে ডেটার টাইপ চিহ্নিত করে।
উদাহরণ:
name = "আজিজ"
age = 25
is_active = trueএখানে name, age, এবং is_active ভেরিয়েবলগুলো ডাইনামিকভাবে টাইপ করা হয়েছে।
৩. ফাংশন (Methods)
রুবিতে ফাংশন তৈরি করার জন্য def কিওয়ার্ড ব্যবহার করা হয়, এবং ফাংশনটি end দিয়ে শেষ হয়।
উদাহরণ:
def greet(name)
puts "Hello, #{name}!"
end
greet("আজিজ") # এটি "Hello, আজিজ!" আউটপুট করবেএখানে greet হল একটি ফাংশন, যেটি একটি প্যারামিটার নেয় এবং প্যারামিটারটি ব্যবহার করে একটি স্ট্রিং আউটপুট করে।
৪. কন্ডিশনাল স্টেটমেন্ট (Conditional Statements)
রুবি if, elsif, এবং else কন্ডিশনাল স্টেটমেন্ট সমর্থন করে। রুবিতে কোন্ডিশনাল স্টেটমেন্ট খুব সহজে লেখা যায়।
উদাহরণ:
age = 20
if age > 18
puts "You are an adult."
else
puts "You are a minor."
endএখানে, রুবি প্রথমে চেক করবে যে age ১৮ এর বেশি কিনা। যদি তাই হয়, তবে "You are an adult." মেসেজটি আউটপুট হবে, নাহলে "You are a minor." মেসেজটি আউটপুট হবে।
৫. লুপস (Loops)
রুবি বিভিন্ন ধরনের লুপ সমর্থন করে, যেমন while, for, এবং each। each লুপটি একটি অ্যারে বা হ্যাশের মাধ্যমে প্রতিটি আইটেমকে প্রক্রিয়া করতে ব্যবহৃত হয়।
উদাহরণ:
# while loop
i = 0
while i < 5
puts i
i += 1
end
# each loop
[1, 2, 3, 4, 5].each do |number|
puts number
endএখানে প্রথম লুপটি একটি while লুপ এবং দ্বিতীয়টি একটি each লুপ। each লুপের মাধ্যমে আমরা অ্যারের প্রতিটি উপাদানটি প্রিন্ট করছি।
৬. অবজেক্ট এবং ক্লাস (Objects and Classes)
রুবি একটি পূর্ণাঙ্গ অবজেক্ট-অরিয়েন্টেড ভাষা, এবং এখানে ক্লাস তৈরি করা হয় class কিওয়ার্ড দিয়ে। প্রতিটি ক্লাসের মধ্যে প্রপার্টি (ভেরিয়েবল) এবং মেথড (ফাংশন) থাকে।
উদাহরণ:
class Person
def initialize(name, age)
@name = name
@age = age
end
def introduce
puts "Hi, my name is #{@name} and I am #{@age} years old."
end
end
person = Person.new("আজিজ", 25)
person.introduce # এটি আউটপুট করবে "Hi, my name is আজিজ and I am 25 years old."এখানে, Person নামে একটি ক্লাস তৈরি করা হয়েছে, যার মধ্যে একটি initialize মেথড রয়েছে, যা কনস্ট্রাক্টরের মতো কাজ করে, এবং একটি introduce মেথড রয়েছে যা ব্যক্তির পরিচয় দেয়।
৭. এ্যারেগেট (Arrays) এবং হ্যাশ (Hashes)
রুবিতে এ্যারেগেট এবং হ্যাশ সহজেই ব্যবহৃত হয়। এ্যারেগেটের মধ্যে একাধিক উপাদান রাখা যায় এবং হ্যাশে কী-ভ্যালু পেয়ার থাকে।
উদাহরণ:
এ্যারেগেট:
fruits = ["apple", "banana", "cherry"]
puts fruits[1] # এটি "banana" আউটপুট করবেহ্যাশ:
person = { "name" => "আজিজ", "age" => 25 }
puts person["name"] # এটি "আজিজ" আউটপুট করবেএখানে, fruits একটি অ্যারে এবং person একটি হ্যাশ। অ্যারে এক ধরনের সিকোয়েন্স আকারে উপাদান ধারণ করে, এবং হ্যাশ কী-ভ্যালু পেয়ার হিসেবে তথ্য রাখে।
সারসংক্ষেপ
রুবি একটি সোজা এবং পরিষ্কার কোড স্ট্রাকচার সরবরাহ করে। এর কোড লেখার জন্য:
- ভেরিয়েবল ডিক্লেয়ার করার জন্য টাইপ নির্ধারণের প্রয়োজন নেই।
- ফাংশন তৈরি করতে
defএবং শেষ করতেendব্যবহার করা হয়। - কন্ডিশনাল স্টেটমেন্ট ব্যবহার করতে
if,elsif,elseব্যবহার করা হয়। - লুপস (যেমন
while,each) ব্যবহার করে কোড পুনরাবৃত্তি করা যায়। - অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং এর মাধ্যমে ক্লাস এবং অবজেক্ট তৈরি করা হয়।
রুবির কোড স্ট্রাকচার সহজ এবং বোধগম্য, যা কোডিংয়ের জন্য আরও প্রাঞ্জল অভিজ্ঞতা প্রদান করে।
Read more