配列とスライス

配列arrayは固定サイズで所有権を持つ値で、スライスはその参照です。

配列は[ ]に囲む形で定義しますが、中身の書き方には2つの方法があります。1つ目は,で区切って好きな値を列挙する方法、2つ目はある値をまず置き、その後;で区切った後リピート回数を置く方法です。これは例えば[0; 3]と書くと[0, 0, 0]になることを意味します。
後者の場合、基準となる値(前の例で言う0)はCopyできる必要があります。

{
  let array = [1, 2, 3];
  let _slice = &array;
}

{
  let array = [0; 3];
  let _slice = &array;
}

for で使う

IteratorまたはIntoIteratorを持つ要素にする必要があります。array::iterを持っている為これを使うか、arrayは&'a [T; N]&'a mut [T; N]に対してIntoIteratorを実装しているのでスライス化すればfor構文で回せるようになります。

for i in [1, 2, 3].iter() {
  println!("{}", i);
  // `1..=3`まで表示
}

for i in &[1, 2, 3] {
  println!("{}", i);
  // `1..=3`まで表示
}