配列

fn main() {
    let mut a: [i8; 10] = [42; 10];
    a[5] = 0;
    println!("a: {a:?}");
}
This slide should take about 5 minutes.
  • 配列型 [T; N]には、同じ型 TN(コンパイル時定数)個の要素が保持されます。なお、配列の長さはその型の一部分です。つまり、[u8; 3][u8; 4] は 2 つの異なる型とみなされます。スライス(サイズが実行時に決定される)については後で説明します。

  • 境界外の配列要素にアクセスしてみてください。配列アクセスは実行時にチェックされます。Rust では通常、これらのチェックを最適化により除去できます(Unsafe Rust を使用することで回避できます)。

  • リテラルを使用して配列に値を代入することができます。

  • println! マクロは、? 形式のパラメータを使用してデバッグ実装を要求します。つまり、{} はデフォルトの出力を、{:?} はデバッグ出力を提供します。整数や文字列などの型はデフォルトの出力を実装しますが、配列はデバッグ出力のみを実装します。そのため、ここではデバッグ出力を使用する必要があります。

  • # を追加すると(例: {a:#?})、読みやすい「プリティ プリント」形式が呼び出されます。