rust 面向对象之Struct、impl、trait关键字使用
生活随笔
收集整理的這篇文章主要介紹了
rust 面向对象之Struct、impl、trait关键字使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
rust 面向對象之Struct、impl、trait關鍵字使用
rust語言跟C、C++是一個性能級別的語言,在用法上要比C++簡單很多。例如:要實現一個web服務,RUST可以通過包管理工具直接安裝一個HTTP庫,然后使用。而C++則需要手動下載,手動導入相應的文件等等。
總的而言rust是非常值得學習的一門語言,根據項目的不同需求,不同的性能,靈活應用不同的語言。
2. rust 定義類
2. 1 rust 定義類成員變量
利用結構體(struct)定義成員變量
// 利用結構體定義成員變量 struct Fruit {color: String,weight: f32 }- 1
- 2
- 3
- 4
- 5
2.2. rust 定義類成員方法
利用impl關鍵字來定義結構體成員方法
// 利用impl關鍵字來定義結構體成員方法 impl Fruit {fn printInfo(&self) {println!("{},{}",self.color,self.weight);} }- 1
- 2
- 3
- 4
- 5
- 6
2.3. 完整代碼
// 利用結構體定義成員變量 struct Fruit {color: String,weight: f32 } // 利用impl關鍵字來定義結構體成員方法 impl Fruit {fn printInfo(&self) {println!("{},{}",self.color,self.weight);} } // 調用 fn main() {let f = Fruit{color:String::from("green"), weight:12.5};f.printInfo(); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
問題來了,一般定義類前面都會有個關鍵字new,那么這個該怎么實現呢?看下面的例子。
3. rust 定義標準類
// 利用結構體定義成員變量 struct Fruit {color: String,weight: f32 } // 利用impl關鍵字來定義結構體成員方法 impl Fruit {// 相當于方法Fruit::new()調用fn new(color: String,weight:f32) -> Fruit {Fruit {color: color,weight: weight}}fn printInfo(&self) {println!("{},{}",self.color,self.weight);} } // 調用 fn main() {let f = Fruit::new(String::from("green"), 12.5);f.printInfo(); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
為什么在定義類方法printInfo(&self)里面傳的參數是&self?
解釋
有幾種變體
4. rust 接口定義
利用trait關鍵字定義一個接口
// 接口 trait Area {fn area(&self) -> f64; }- 1
- 2
- 3
- 4
利用struct定義一個類
// 具體類 struct Circle {r: f64 }- 1
- 2
- 3
- 4
讓【具體類】實現【接口】
impl Area for Circle {fn area(&self) -> f64 {(3.14 * self.r) // 作為返回值 => 必須使用 () 括起來,并不能寫 ;} }- 1
- 2
- 3
- 4
- 5
5. 完整代碼
// 接口 trait Area {fn area(&self) -> f64; }// 具體類 struct Circle {r: f64 }// 讓【具體類】實現【接口】 impl Area for Circle {fn area(&self) -> f64 {(3.14 * self.r) // 作為返回值 => 必須使用 () 括起來,并不能寫 ;} }fn main() {let r = Circle {r:10.5};println!("area = {:?}", r.area()); }總結
以上是生活随笔為你收集整理的rust 面向对象之Struct、impl、trait关键字使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Rust语言之HelloWorld We
- 下一篇: 大火系列: Rust入门篇 mut