gpt4 book ai didi

scope - 重新绑定(bind)在 for 循环中不起作用的变量

转载 作者:行者123 更新时间:2023-11-29 08:03:06 24 4
gpt4 key购买 nike

我正在尝试编写一个迭代多次的循环,它还会更新 Rust 中的一个变量。

fn get_next(input: &[u8]) -> (u8, &[u8]) {
(input[0], &input[1..])
}

fn main() {
let slice: &[u8] = &vec![1, 2, 3, 4];
for _ in 0..4 {
let (mynum, slice) = get_next(slice);
println!("Here's mynum {} slice {:?}", mynum, slice);
}
}

代码在 Rust Playground 上.

这是输出:

Here's mynum 1 slice [2, 3, 4]
Here's mynum 1 slice [2, 3, 4]
Here's mynum 1 slice [2, 3, 4]
Here's mynum 1 slice [2, 3, 4]

我希望每次更改 slice 变量以指向下一个子切片。如何获取要更新的 slice 变量?

这是一个最小的示例,如果我真的在切片中迭代 u8,我会采用不同的方式。

最佳答案

您正在定义一个新变量来覆盖外部变量。也许:

let mut slice: &[u8] = &vec![1, 2, 3, 4];
for _ in 0..4 {
let (mynum, slice_) = get_next(slice);
slice = slice_;
println!("Here's mynum {} slice {:?}", mynum, slice);
}

关于scope - 重新绑定(bind)在 for 循环中不起作用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com