2
我正在嘗試編寫一個循環迭代多次,它也更新Rust中的變量。重新綁定變量不工作在for循環內
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
的分片,我會以不同的方式做。
暫時地,「重新綁定變量」正在工作*就好了*。您將名稱'mynum'和'slice'綁定爲全新的值。^_^ – Shepmaster
又名:* binding *(賦予值一個名稱)和*賦值*(用另一個值覆蓋一個值)之間有區別。 'let'語法用於* binding *。 –