在Rust official doc中,有一个代码示例:
fn main() {
let number_list = vec![34, 50, 25, 100, 65];
let result = largest(&number_list);
println!("The largest number is {}", result);
let number_list = vec![102, 34, 6000, 89, 54, 2, 43, 8];
let result = largest(&number_list);
println!("The largest number is {}", result);
}
我想知道&number_list
是什么样子的(它和&number_list[0]
是一样的吗),所以我尝试了这个例子:
fn reference() {
let number_list = vec![1,2,3,4,5];
let ref = &number_list;
println!("{}", ref);
}
然而,我得到了错误:
error: expected identifier, found `=`
|
| let ref = &number_list;
| ^ expected identifier
这方面有什么线索吗?为什么它是不可赋值的,并给出一个错误消息,不太有意义(至少对我来说)?
4条答案
按热度按时间m2xkgtsf1#
ref
是Rust关键字。ref
注解模式绑定,使它们借用而不是移动。就匹配而言,它不是模式的一部分:它不影响值是否匹配,只影响匹配的方式。tvz2xvvm2#
ref
是一个keyword尝试:
6ovsh4lw3#
ref
是关键字。请尝试为变量添加其他名称tyu7yeag4#
正如其他人所说,
ref
是Rust中的一个关键字。但是如果你想经常使用它,你可以使用ref pattern:不,
&idxable
不是&idxable[0]
,它正好是&idxable
。顺便说一句,在这个例子中不需要向量。