方法

Rust 可讓您將函式與新型別建立關聯。您可以使用 impl 區塊來執行這項操作:

#[derive(Debug)]
struct Person {
    name: String,
    age: u8,
}

impl Person {
    fn say_hello(&self) {
        println!("Hello, my name is {}", self.name);
    }
}

fn main() {
    let peter = Person {
        name: String::from("Peter"),
        age: 27,
    };
    peter.say_hello();
}

重點:

  • 導入方法時,若將方法比做函式,會很有幫助。
    • 系統會在型別的執行個體 (例如結構體或列舉) 上呼叫方法,第一個參數以 self 代表執行個體。
    • 開發人員可以選擇透過方法來充分利用方法接收器語法,以更有條理的方式進行整理。藉由使用方法,我們可以將所有實作程式碼存放在可預測的位置。
  • 指出我們會使用關鍵字 self,也就是方法接收器。
    • 說明 selfself: Self 的縮寫,或許也能示範結構體名稱的可能用法。
    • 講解 Selfimpl 區塊所屬型別的型別別名,可用於該區塊的其他位置。
    • 提醒學員如何以類似於其他結構體的方式來使用 self,並指出點標記法可用來參照個別欄位,
    • 這可能是示範 &selfself 差異的好時機,您只要修改程式碼並嘗試執行 say_hello 兩次即可。
  • 接下來我們將說明方法接收器之間的差異。