在Rust中,参数传递的方式取决于参数的类型。Rust支持多种参数传递方式,包括值传递和引用传递。以下是一些常见的参数传递方式:
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
let x = 1;
let y = 2;
let z = add(x, y); // 值传递,z的值为3
}
fn add_ref(a: &i32, b: &i32) -> i32 {
*a + *b
}
fn main() {
let x = 1;
let y = 2;
let z = add_ref(&x, &y); // 引用传递,z的值为3
}
3.可变引用传递(Pass by mutable reference):当参数是可变引用(&mut)时,会发生可变引用传递。这意味着在函数内部对参数所做的修改会影响到原始变量,并且允许修改参数的值。
fn add_mut(a: &mut i32, b: &mut i32) -> i32 {
*a + *b
}
fn main() {
let mut x = 1;
let mut y = 2;
let z = add_mut(&mut x, &mut y); // 可变引用传递,z的值为3
}
fn add_generic<T>(a: T, b: T) -> T {
a + b
}
fn main() {
let x = 1;
let y = 2;
let z = add_generic(x, y); // 泛型参数传递,z的值为3
}
总之,Rust提供了灵活的参数传递方式,可以根据需要选择合适的传递方式。