Methods (মেথডস)
রাস্টে মেথডস হল ফাংশনগুলো যা একটি স্ট্রাকচার (struct), এনাম (enum), অথবা ট্রেট (trait) এর সাথে যুক্ত থাকে। এই ফাংশনগুলো সাধারণত self প্যারামিটার ব্যবহার করে ডেটার উপর কাজ করে। self একটি অবজেক্টের মালিকানা বা রেফারেন্স হিসেবে কাজ করে, যা ফাংশনকে সেই অবজেক্টের ডেটা অ্যাক্সেস করার অনুমতি দেয়।
মেথডের সিঙ্কট্যাক্স:
মেথডের মধ্যে self ব্যবহৃত হয় যা অবজেক্টের ইনস্ট্যান্সের উপর কাজ করে।
উদাহরণ:
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
// একটি মেথড যা Rectangle এর ক্ষেত্রফল প্রদান করে
fn area(&self) -> u32 {
self.width * self.height
}
// একটি মেথড যা Rectangle এর বর্গাকার কিনা তা চেক করে
fn is_square(&self) -> bool {
self.width == self.height
}
}
fn main() {
let rect = Rectangle {
width: 30,
height: 30,
};
println!("Area: {}", rect.area()); // মেথড কল
println!("Is square? {}", rect.is_square()); // মেথড কল
}ব্যাখ্যা:
&selfহচ্ছে একটি ইমিউটেবল রেফারেন্স যা অবজেক্টের ডেটা অ্যাক্সেস করে।area()মেথডRectangleএর ক্ষেত্রফল বের করে।is_square()মেথড চেক করে যদিwidthএবংheightসমান হয় তবে এটি সঠিকভাবেtrueরিটার্ন করবে।
Associated Functions (অ্যাসোসিয়েটেড ফাংশনস)
রাস্টে অ্যাসোসিয়েটেড ফাংশনস হল এমন ফাংশনগুলো যা একটি টাইপের সাথে যুক্ত থাকে, তবে সেগুলো কোনো ইনস্ট্যান্স ডেটা (অথবা অবজেক্টের মালিকানা) অ্যাক্সেস করে না। এই ফাংশনগুলো সাধারণত impl ব্লকের ভিতরে থাকে এবং self প্যারামিটার ব্যবহার না করে স্ট্যাটিক ফাংশন হিসেবে কাজ করে।
অ্যাসোসিয়েটেড ফাংশনস সাধারণত ফ্যাক্টরি ফাংশন হিসেবে ব্যবহৃত হয়, যেমন কোন নতুন অবজেক্ট তৈরি করা।
অ্যাসোসিয়েটেড ফাংশনের সিঙ্কট্যাক্স:
এগুলো self ছাড়া কল করা হয় এবং এই ফাংশনগুলো সাধারণত একটি টাইপের সাথে যুক্ত থাকে।
উদাহরণ:
struct Circle {
radius: f64,
}
impl Circle {
// একটি অ্যাসোসিয়েটেড ফাংশন যা একটি নতুন Circle তৈরি করে
fn new(radius: f64) -> Circle {
Circle { radius }
}
// একটি মেথড যা Circle এর ক্ষেত্রফল প্রদান করে
fn area(&self) -> f64 {
3.14 * self.radius * self.radius
}
}
fn main() {
let circle = Circle::new(10.0); // অ্যাসোসিয়েটেড ফাংশন কল
println!("Area of the circle: {}", circle.area()); // মেথড কল
}ব্যাখ্যা:
Circle::new(10.0)একটি অ্যাসোসিয়েটেড ফাংশন কল, যা একটি নতুনCircleঅবজেক্ট তৈরি করে।area()মেথডCircleএর ক্ষেত্রফল বের করে।
Methods vs Associated Functions
- Methods: এই ফাংশনগুলো একটি অবজেক্টের উপর কাজ করে এবং সেগুলো
selfবা তার রেফারেন্স ব্যবহার করে। - Associated Functions: এই ফাংশনগুলো সাধারণত টাইপের সাথে যুক্ত থাকে এবং
selfব্যবহারের প্রয়োজন হয় না, যেমন একটি নতুন অবজেক্ট তৈরি করা বা কোনো স্ট্যাটিক অপারেশন সম্পাদন করা।
সারাংশ:
- Methods অবজেক্টের উপর কাজ করে এবং
selfব্যবহারের মাধ্যমে ডেটাকে অ্যাক্সেস করে। - Associated Functions অবজেক্টের সাথে সম্পর্কিত ফাংশন, তবে এগুলো সাধারণত
selfছাড়া কাজ করে এবং স্ট্যাটিক ফাংশন হিসেবেই ব্যবহৃত হয়।
Read more