在Rust中,match表達式可以很好地處理嵌套結構。你可以通過在匹配模式中使用元組來處理嵌套結構。下面是一個例子,展示了如何使用match處理嵌套結構:
struct Address {
street: String,
city: String,
}
struct Person {
name: String,
age: u8,
address: Address,
}
fn main() {
let person = Person {
name: String::from("Alice"),
age: 30,
address: Address {
street: String::from("123 Main St"),
city: String::from("New York"),
},
};
match person {
Person { name, age, address } => {
println!("Name: {}", name);
println!("Age: {}", age);
match address {
Address { street, city } => {
println!("Street: {}", street);
println!("City: {}", city);
}
}
}
_ => println!("Unknown person"),
}
}
在這個例子中,我們定義了兩個結構體:Address
和Person
。Person
結構體包含一個嵌套的Address
結構體。我們在main
函數中創建了一個Person
實例,并使用match表達式來處理它。
在match表達式中,我們首先匹配Person
結構體的字段。然后,我們使用另一個match表達式來處理嵌套的Address
結構體。這樣,我們可以方便地處理嵌套結構并提取所需的字段。