diff --git a/CHANGELOG b/CHANGELOG index ffb1012dca600b059944cdb6ea997308d8e53ee2..83c082231a480376e59127ed854c193e85a7eff9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -260,4 +260,46 @@ fn main() println!("{} is {} characters long.", s, s.len());// 使用实例来调用方法 } +///内存 + 实例化一个结构体时,结构体字段可以通过.来获取 +struct SeaCreature +{ + animal_type: String, + name: String, + arms: i32, + legs: i32, + weapon: String, +} + +fn main() +{ + // SeaCreature的数据在栈上 + let ferris = SeaCreature { + // String 结构体也在栈上, + // 但也存放了一个数据在堆上的引用 + animal_type: String::from("螃蟹"), + name: String::from("Ferris"), + arms: 2, + legs: 4, + weapon: String::from("大钳子"), + }; + + let sarah = SeaCreature { + animal_type: String::from("章鱼"), + name: String::from("Sarah"), + arms: 8, + legs: 0, + weapon: String::from("无"), + }; + + println!( + "{} 是只{}。它有 {} 只胳膊 {} 条腿,还有一个{}。", + ferris.name, ferris.animal_type, ferris.arms, ferris.legs, ferris.weapon + ); + println!( + "{} 是只{}。它有 {} 只胳膊 {} 条腿。它没有杀伤性武器…", + sarah.name, sarah.animal_type, sarah.arms, sarah.legs + ); +} +