如何在不拥有所有权的情况下为Rust切片命名?

时间:2019-06-07 19:55:21

标签: rust slice ownership

在加密问题中,为了减少冗长程度,我将v的一部分“命名”为block,对其进行了一些处理,但随后尝试验证的结果{{1}上整个上的do_stuff

v

借阅检查员抱怨:

fn x() {
    let mut v = vec![0; 32];
    let block = &mut v[0..16];

    do_stuff(block);
    check_stuff(&v);
    do_stuff(block);
}

fn do_stuff(_: &mut [i32]) {}
fn check_stuff(_: &[i32]) {}

我知道这是要提供的保证。但是,假设我知道自己在做什么,是否有一种惯用的方式为切片指定名称,而不必每次使用error[E0502]: cannot borrow `v` as immutable because it is also borrowed as mutable --> src/lib.rs:6:17 | 3 | let block = &mut v[0..16]; | - mutable borrow occurs here ... 6 | check_stuff(&v); | ^^ immutable borrow occurs here 7 | do_stuff(block); | ----- mutable borrow later used here 或进行复制?

0 个答案:

没有答案