审查生成的库存转移

来自 借用规则
Rust 1.98 高级 6分钟 找出 4处问题

审查这个生成的库存转移辅助函数。

在两个不同的有效货位之间移动一个单位;索引无效或来源为空时返回 false;不得溢出、分配或产生输出。

Rust
fn transfer_one(
    stock: &mut Vec<u32>,
    from: usize,
    to: usize,
) -> bool {
    if from >= stock.len() || to >= stock.len() {
        return false;
    }

    let source = &mut stock[from];
    let destination = &mut stock[to];
    let before = stock.clone();

    if *source == 0 {
        return false;
    }

    *source -= 1;
    *destination += 1;
    println!("before: {before:?}");
    true
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误