Swift-এ প্রোপার্টিজ এবং মেথড
Swift-এ প্রোপার্টিজ এবং মেথড ব্যবহার করে আপনি ক্লাস (class), স্ট্রাক্ট (struct), এবং এনাম (enum) তৈরি করতে পারেন, যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ। প্রোপার্টিজ হলো অবজেক্টের গুণাবলী (attributes) বা মান (values), আর মেথড হলো ফাংশন যা এই প্রোপার্টিজের উপর কাজ করে বা কিছু নির্দিষ্ট কার্যকলাপ সম্পাদন করে।
প্রোপার্টিজ (Properties)
Swift-এ প্রোপার্টিজ মূলত দুটি ভাগে ভাগ করা যায়:
- স্টোরড প্রোপার্টিজ (Stored Properties): এগুলো হলো ভেরিয়েবল বা কনস্ট্যান্ট, যা ডেটা স্টোর করে রাখে।
- কম্পিউটেড প্রোপার্টিজ (Computed Properties): এগুলো সরাসরি ডেটা স্টোর না করে, বরং গণনা করে একটি মান প্রদান করে।
স্টোরড প্রোপার্টিজ (Stored Properties)
স্টোরড প্রোপার্টিজ হলো ভেরিয়েবল বা কনস্ট্যান্ট যা ক্লাস বা স্ট্রাক্টের মধ্যে সরাসরি মান সংরক্ষণ করে।
উদাহরণ:
struct Car {
var brand: String
var model: String
var year: Int
}
var myCar = Car(brand: "Toyota", model: "Corolla", year: 2020)
print("Brand: \(myCar.brand), Model: \(myCar.model), Year: \(myCar.year)")
এখানে, Car স্ট্রাক্টের মধ্যে তিনটি স্টোরড প্রোপার্টিজ আছে—brand, model, এবং year। আমরা এই প্রোপার্টিজগুলো ব্যবহার করে myCar অবজেক্ট তৈরি করেছি এবং তাদের মান প্রিন্ট করেছি।
কম্পিউটেড প্রোপার্টিজ (Computed Properties)
কম্পিউটেড প্রোপার্টিজ সরাসরি মান সংরক্ষণ করে না; বরং, একটি ক্যালকুলেশন বা এক্সপ্রেশন ব্যবহার করে একটি মান প্রদান করে। এটি সাধারণত get এবং set ব্লক ব্যবহার করে ডিফাইন করা হয়।
উদাহরণ:
struct Rectangle {
var width: Double
var height: Double
var area: Double {
return width * height
}
}
let rect = Rectangle(width: 5.0, height: 10.0)
print("Area: \(rect.area)")
এখানে, Rectangle স্ট্রাক্টের মধ্যে area নামে একটি কম্পিউটেড প্রোপার্টি আছে, যা width এবং height এর মান ব্যবহার করে এর ক্ষেত্রফল (area) গণনা করে।
প্রপার্টি অবজারভার (Property Observers)
Swift-এ প্রোপার্টি অবজারভার ব্যবহার করে স্টোরড প্রোপার্টিজের মান পরিবর্তন হওয়ার সময় কিছু কার্যকলাপ সম্পাদন করা যায়। এটি willSet এবং didSet ব্লক ব্যবহার করে ডিফাইন করা হয়।
struct StepCounter {
var steps: Int = 0 {
willSet(newSteps) {
print("About to set steps to \(newSteps)")
}
didSet {
print("Added \(steps - oldValue) steps")
}
}
}
var counter = StepCounter()
counter.steps = 100
counter.steps = 150
এখানে, steps প্রোপার্টিতে নতুন মান সেট করার আগে এবং পরে মেসেজ প্রিন্ট করা হবে।
মেথড (Methods)
Swift-এ মেথড হলো ফাংশন, যা ক্লাস, স্ট্রাক্ট, বা এনাম-এর সাথে যুক্ত। মেথড ক্লাস বা অবজেক্টের প্রোপার্টিজের উপর কাজ করে এবং নির্দিষ্ট কার্যকলাপ সম্পাদন করে।
ইনস্ট্যান্স মেথড (Instance Methods)
ইনস্ট্যান্স মেথড হলো মেথড যা একটি ক্লাস বা স্ট্রাক্টের নির্দিষ্ট ইনস্ট্যান্সের উপর কাজ করে।
উদাহরণ:
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() -> String {
return "Hello, my name is \(name)."
}
}
let person = Person(name: "Alice")
print(person.greet())
এখানে, Person ক্লাসের মধ্যে greet নামে একটি ইনস্ট্যান্স মেথড আছে, যা name প্রোপার্টির উপর ভিত্তি করে একটি মেসেজ রিটার্ন করে।
টাইপ মেথড (Type Methods)
টাইপ মেথড ক্লাস বা স্ট্রাক্টের জন্য সাধারণভাবে ব্যবহৃত হয়, যা নির্দিষ্ট ইনস্ট্যান্সের উপর কাজ না করে পুরো ক্লাস বা স্ট্রাক্টের উপর কাজ করে। টাইপ মেথড ডিফাইন করতে static বা class কীওয়ার্ড ব্যবহার করা হয়।
উদাহরণ:
struct Math {
static func square(_ number: Int) -> Int {
return number * number
}
}
print(Math.square(4))
এখানে, Math স্ট্রাক্টের square নামে একটি টাইপ মেথড আছে, যা একটি সংখ্যা গ্রহণ করে এবং তার বর্গফল রিটার্ন করে।
উপসংহার
Swift-এ প্রোপার্টিজ এবং মেথড ব্যবহার করে আপনি ক্লাস, স্ট্রাক্ট, এবং এনাম তৈরি করতে পারেন, যা আপনার কোডকে আরও সংগঠিত এবং মডুলার করে।
- প্রোপার্টিজ: একটি অবজেক্টের গুণাবলী বা মান সংরক্ষণ করে। এটি স্টোরড বা কম্পিউটেড হতে পারে।
- মেথড: ফাংশন, যা অবজেক্টের প্রোপার্টিজের উপর কাজ করে এবং কিছু কার্যকলাপ সম্পাদন করে। এটি ইনস্ট্যান্স বা টাইপ মেথড হতে পারে।
প্রোপার্টিজ এবং মেথড Swift প্রোগ্রামিং-এর একটি গুরুত্বপূর্ণ অংশ, যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণাকে শক্তিশালী করে এবং কোডকে আরও রিডেবল এবং পুনরায় ব্যবহারযোগ্য করে তোলে।
Read more