在Rust Book的第18章中,他们举了一个有关元组在模式匹配中的例子。
fn print_coordinates(&(x, y): &(i32, i32)) {
println!("Current location: ({}, {})", x, y);
}
fn main() {
let point = (3, 5);
print_coordinates(&point); // point passed as reference
}
出于好奇,我尝试了不使用引用传递的方式,就像这样。
fn print_coordinates((x, y): (i32, i32)) {
println!("Current location: ({}, {})", x, y);
}
fn main() {
let point = (3, 5);
print_coordinates(point); // point passed as value
print_coordinates(point); // point is still valid here
}
它编译并打印出坐标两次。
元组是否可以像其他原始数据类型(数字、布尔值等)一样传递到函数中?