不可变引用
- 声明语法:使用
&
符号。例如,假设有一个变量x
,可以这样创建不可变引用:
let x = 5;
let ref_x = &x;
- 函数参数中使用:在函数参数中使用不可变引用时,函数体不能修改引用指向的值。
fn print_value(ref_num: &i32) {
// 尝试修改会报错
// *ref_num = 10;
println!("The value is: {}", ref_num);
}
可变引用
- 声明语法:使用
&mut
符号。例如:
let mut x = 5;
let ref_mut_x = &mut x;
- 函数参数中使用:在函数参数中使用可变引用时,函数体可以修改引用指向的值。
fn increment_value(ref_mut_num: &mut i32) {
*ref_mut_num += 1;
println!("Incremented value is: {}", ref_mut_num);
}
示例完整代码
fn print_value(ref_num: &i32) {
// 尝试修改会报错
// *ref_num = 10;
println!("The value is: {}", ref_num);
}
fn increment_value(ref_mut_num: &mut i32) {
*ref_mut_num += 1;
println!("Incremented value is: {}", ref_mut_num);
}
fn main() {
let x = 5;
print_value(&x);
let mut y = 5;
increment_value(&mut y);
}