メソッドとは、構造体などの中に定義された関数の一種である。
構造体以外にも、列挙型やトレイとなどの中にもメソッドを定義できる。
メソッドは、メソッドの定義された構造体などのインスタンスに関連付けられる。
メソッドは、レシーバ(関連付けられたインスタンス)の持つ情報を持つ事ができる。
例)
メソッド定義は通常の関数と同じ fn キーワードを使う。
第一引数にはメソッドのレシーバが渡される。
構造体のインスタンスをミュータブルな参照として使う場合は、 "&mut self" を指定する。
メソッドの第一引数を self とした場合は、レシーバの所有権がメソッドに移動する。
struct User {
age: u8,
name: String,
}
impl User {
fn show(&self) {
println!("{} is {}.", self.name, self.age);
}
}
fn main() {
let u = User { age: 36, name: String::from("tarou") };
u.show();
}