在 Rust 中,&
符号有多种不同的含义,具体取决于它出现的上下文。
在类型中,&
表示一个引用类型(reference),用于借用变量而不是拥有变量的所有权。例如,在如下代码中,&i32
表示一个 i32
类型的引用:
fn main() {
let x = 10;
let y: &i32 = &x; // 变量 y 保存了变量 x 的引用
println!("x = {}, y = {}", x, y); // 打印 x 和 y 的值
}
在上述代码中,我们使用 let y: &i32 = &x
创建了一个 i32
类型的引用 y
,它指向变量 x
。然后,通过 println!("x = {}, y = {}", x, y)
打印了变量 x
和 y
的值。由于 y
是一个引用,所以它的值为 &x
,而不是 x
。
在函数参数中,&
也通常表示借用,用于将一个变量的所有权传递给函数。例如,在如下代码中,函数 print_number()
接受一个 &i32
类型的引用作为参数:
fn print_number(x: &i32) {
println!("{}", x);
}
fn main() {
let x = 10;
print_number(&x); // 将变量 x 的引用传递给函数
}
在上述代码中,我们定义了一个函数 print_number(&i32)
,它接受一个指向 i32
类型变量的引用作为参数。然后,在 main()
函数中,我们将变量 x
的引用传递给函数 print_number()
,以便打印变量 x
的值。
总之,&
符号在 Rust 中有多种不同的含义,通常表示引用或借用。它的具体含义取决于它出现的上下文。