Rust 結構與模塊
Struct是自定義的數據類型,因此我們可以自行定義,而他也使我們能夠根據自己的需求調整數據的結構。Methods是將你所有的函式包裝再一起,而當你可以在這個模組下找到相關的函式。
Struct
我們利用Struct定義我們結構,他就像一個物件一樣包含了所有你所定義的東西,當你需要取得值時你只需要name.a
或是name.b
就可以輕鬆地取得。
1 | struct Object{ |
接著我們創建一個函式來計算面積,傳進去的東西就是我們剛剛所宣告的物件。
1 | fn area(obj: Object) -> u32 { |
在這邊我們利用我們所創的結構將整個物件傳入函式,你可以在Object裡面拿到你所定義的值,當你的值越多時,他可以讓你的程式碼更加得清楚,使用起來更加方便。
1 | struct Object{ |
Impl
impl關鍵字被主要用於對類型限定的方式,而impl
中定義的功能可以是獨立的,這意味著將其稱為hello::world()
。這有點類似於hello.world()
的概念。
在使用impl
時我們一樣先創建一個struct
來定義我們所需要的數據。
1 | struct Object{ |
創建完後將impl
與創建得struct
名稱宣告成一樣的,這將會使他綁定再一起的感覺,你可以在裡面使用你所宣告的數據。self
得用意是引用當前模塊和標記方法的接收者,這就是為什麼下面還有一個new
的函式,我將直傳進去後在當前的模塊中,self
就可以拿到我所須要的數據,而這邊有一個很特別的點是,new
裡面的Object
可以不用寫成width:width
,因為在rust中只要他定義的名字是一樣的就會動傳到裡面去。
1 | struct Object{ |
如果你想要把它拆的細一點,你也可以把new
和area
拆開寫也是可以的。
1 | impl Object { |