14.结构体struct.rs
生活随笔
收集整理的這篇文章主要介紹了
14.结构体struct.rs
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
//Rust 里 struct 語句僅用來定義,不能聲明實例,結(jié)尾不需要 ; 符號,而且每個字段定義之后用 , 分隔#[derive(Debug)]
struct Site {domain: String,name: String,nation: String,found: u32
}fn main() {let runoob = Site {domain: String::from("www.runoob.com"),name: String::from("RUNOOB"),nation: String::from("China"),found: 2013};println!("{:?}",runoob);//必須使用key: value 語法來實現(xiàn)定義// let runoob2 = Site {// String::from("www.runoob.com"),// name: String::from("RUNOOB"),// nation: String::from("China"),// found: 2013// };//但是,如果正在實例化的結(jié)構(gòu)體有字段名稱和現(xiàn)存變量名稱一樣的,可以簡化書寫let domain = String::from("www.runoob.com");let runoob2 = Site {domain,name: String::from("RUNOOB"),nation: String::from("China"),found: 2013};//你想要新建一個結(jié)構(gòu)體的實例,其中大部分屬性需要被設(shè)置成與現(xiàn)存的一個結(jié)構(gòu)體屬性一樣,僅需更改其中的一兩個字段的值,可以使用結(jié)構(gòu)體更新語法://注意:..runoob 后面不可以有逗號。這種語法不允許一成不變的復(fù)制另一個結(jié)構(gòu)體實例,意思就是說至少重新設(shè)定一個字段的值才能引用其他實例的值let runoob3 = Site {nation: String::from("Chinese"),.. runoob2};println!("{:?}",runoob3);//元組結(jié)構(gòu)體//元組結(jié)構(gòu)體是一種形式是元組的結(jié)構(gòu)體。與元組的區(qū)別是它有名字和固定的類型格式。它存在的意義是為了處理那些需要定義類型(經(jīng)常使用)又不想太復(fù)雜的簡單數(shù)據(jù)#[derive(Debug)]struct Color(u8, u8, u8);struct Point(f64, f64);let black = Color(0, 0, 0);let origin = Point(0.0, 0.0);println!("{:?}",black);println!("{}-{}",origin.0,origin.1);let rect1 = Rectangle { width: 30, height: 50 };println!("rect1's area is {}", rect1.area());let rect2 = Rectangle { width: 40, height: 20 };println!("{}", rect1.wider(&rect2));let rect3 = Rectangle::reate(23,32);println!("rect3 is {:?}", rect3);}#[derive(Debug)]
struct Rectangle {width: u32,height: u32,
}//結(jié)構(gòu)體方法
impl Rectangle {fn area(&self) -> u32{self.width * self.height}fn wider(&self, rect: &Rectangle) -> bool {self.width > rect.width}
}//結(jié)構(gòu)體函數(shù)(類似C++構(gòu)造函數(shù))
impl Rectangle {fn reate(width:u32, height:u32) -> Rectangle{Rectangle{width,height}}
}//單元結(jié)構(gòu)體,結(jié)構(gòu)體可以值作為一種象征而無需任何成員:
struct UnitStruct;
?
總結(jié)
以上是生活随笔為你收集整理的14.结构体struct.rs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 13.迭代器.rs
- 下一篇: 15.枚举enum.rs