rust

rust default 如何正确使用

小樊
81
2024-12-03 19:44:30
栏目: 编程语言

在 Rust 中,default 关键字用于为结构体、枚举和元组生成默认值

  1. 结构体:
struct Person {
    name: String,
    age: u32,
    address: Option<String>,
}

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

  1. 枚举:
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

  1. 元组:
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<T>),default 会生成 None。对于其他引用类型(例如 &str&T),default 会生成 null(对于指针类型)或 Default::default()(对于非指针类型)。

0
看了该问题的人还看了