方法
方法是與型別相關聯的函式。方法的 self
引數是與其相關聯的型別執行個體:
struct Rectangle { width: u32, height: u32, } impl Rectangle { fn area(&self) -> u32 { self.width * self.height } fn inc_width(&mut self, delta: u32) { self.width += delta; } } fn main() { let mut rect = Rectangle { width: 10, height: 5 }; println!("old area: {}", rect.area()); rect.inc_width(5); println!("new area: {}", rect.area()); }
- 我們將在今天的練習和明天的課程中深入探討更多方法。
-
新增名為
Rectangle::new
的靜態方法,然後從main
呼叫此方法:fn new(width: u32, height: u32) -> Rectangle { Rectangle { width, height } }
-
雖然「技術上」來說,Rust 沒有自訂的建構函式,但靜態方法經常用來初始化結構體 (儘管並非必須)。因此,您可直接呼叫實際的建構函式
Rectangle { width, height }
。詳情請參閱 Rustnomicon。 -
新增
Rectangle::square(width: u32)
建構函式,說明這類靜態方法可以採用任意參數。