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]
Iはslice
変数は、次のサブスライスをポイントするたびに変更することが期待されます。 slice
変数を更新するにはどうすればよいですか?
これは最小の例です。u8
をスライスで実際に繰り返していた場合、私は別のやり方をします。
「変数を再バインドする」はうまく動作しています。新しい値に 'mynum'と' slice'という名前をバインドしています。^_^ – Shepmaster
AKA:*バインディング*(値に名前を付ける)と*を割り当てる(別の値で上書きする)の間には違いがあります。 'let'構文は* binding *のためのものです。 –