rust 应为标识符,引用向量时找到'='

wtlkbnrh  于 2022-12-04  发布在  其他
关注(0)|答案(4)|浏览(171)

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

这方面有什么线索吗?为什么它是不可赋值的,并给出一个错误消息,不太有意义(至少对我来说)?

m2xkgtsf

m2xkgtsf1#

ref是Rust关键字。
ref注解模式绑定,使它们借用而不是移动。就匹配而言,它不是模式的一部分:它不影响值是否匹配,只影响匹配的方式。

tvz2xvvm

tvz2xvvm2#

ref是一个keyword
尝试:

fn reference() {
    let number_list = vec![1,2,3,4,5];
    let my_variable = &number_list;
    println!("{}", my_variable);
}
6ovsh4lw

6ovsh4lw3#

ref是关键字。请尝试为变量添加其他名称

tyu7yeag

tyu7yeag4#

正如其他人所说,ref是Rust中的一个关键字。但是如果你想经常使用它,你可以使用ref pattern:

fn reference() {
    let number_list = vec![1,2,3,4,5];
    let ref my_ref = &number_list;
    println!("{:?}", my_ref);
}

不,&idxable不是&idxable[0],它正好是&idxable
顺便说一句,在这个例子中不需要向量。

相关问题