Struct, Enum और Trait

Rust Methods and impl Blocks

Attach behavior to a struct: methods with &self, changes with &mut self and constructors like new.

  • मध्यम
  • 4 मिनट में पढ़ें
  • 1 चलाने योग्य उदाहरण
आप क्या सीखेंगे
  • impl blocks
  • &self and &mut self
  • Associated functions
Receiver → what the method can do
fn area(&self)read
fn scale(&mut self, f)change
fn new(w, h) -> Selfcreate

Functions that belong to a type

An impl block holds the functions that belong to a type. A method takes self as its first parameter and is called with a dot. A function without self, such as new, is called with the type name and ::.

&self borrows the rectangle for reading and &mut self borrows it for changing, which is why rect must be mut to call scale. Self is a short name for the type of the impl block. new and square are associated functions used as constructors.

मुख्य बातें

  1. &self reads the value.
  2. &mut self changes it.
  3. Rectangle::new has no self: it is a constructor.

चलने योग्य Rust उदाहरण

Rust
कोड चलाएँ →
main.rs
struct Rectangle {
    width: f64,
    height: f64,
}

impl Rectangle {
    fn new(width: f64, height: f64) -> Self {
        Self { width, height }
    }

    fn square(size: f64) -> Self {
        Self::new(size, size)
    }

    fn area(&self) -> f64 {
        self.width * self.height
    }

    fn scale(&mut self, factor: f64) {
        self.width *= factor;
        self.height *= factor;
    }
}

fn main() {
    let mut rect = Rectangle::new(3.0, 4.0);
    println!("area: {}", rect.area());

    rect.scale(2.0);
    println!("scaled: {} x {} = {}", rect.width, rect.height, rect.area());
    println!("square: {}", Rectangle::square(5.0).area());
}
इस उदाहरण के लिए Run बटन बनाएँ कोड चलाने का परिणाम
area: 12
scaled: 6 x 8 = 48
square: 25

अभ्यास

उदाहरण को ऑनलाइन कंपाइलर में खोलें, कोई मान बदलें या एक पंक्ति जोड़ें, और चलाने से पहले आउटपुट का अनुमान लगाएँ। फिर कोड में जान-बूझकर गलती करें और कंपाइलर का संदेश पढ़ें।

यह पाठ पूरा कर लिया?

अपनी प्रगति ट्रैक करने के लिए इसे सीखा हुआ मार्क करें।

अगला: Enums →

चैलेंज से अभ्यास करें

इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।

सभी चैलेंज