在 Rust 中,default
关键字用于为结构体、枚举和元组生成默认值
- 结构体:
struct Person { name: String, age: u32, address: Option, } fn main() { let person = Person { name: String::from("Alice"), age: 30, address: None, }; let default_person = Person::default(); println!("Person: {:?}", person); println!("Default Person: {:?}", default_person); }
在这个例子中,我们定义了一个 Person
结构体,并为每个字段提供了默认值。然后我们创建了一个具有自定义值的 person
实例和一个使用 default
生成的默认值实例 default_person
。
- 枚举:
enum Message { Quit, Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32), } fn main() { let message = Message::Write(String::from("Hello, world!")); let default_message = Message::default(); println!("Message: {:?}", message); println!("Default Message: {:?}", default_message); }
在这个例子中,我们定义了一个 Message
枚举,并为每个变体提供了默认值。然后我们创建了一个具有自定义值的 message
实例和一个使用 default
生成的默认值实例 default_message
。
- 元组:
fn main() { let tuple = (1, "two", 3.0); let default_tuple = (0, "", 0.0); println!("Tuple: {:?}", tuple); println!("Default Tuple: {:?}", default_tuple); }
在这个例子中,我们创建了一个包含不同类型值的元组 tuple
和一个使用 default
生成的默认值元组 default_tuple
。
注意:对于包含可选类型的枚举(例如 Option
),default
会生成 None
。对于其他引用类型(例如 &str
或 &T
),default
会生成 null
(对于指针类型)或 Default::default()
(对于非指针类型)。