【Rust】配列

配列はTという単一の型のオブジェクトの集合。それらのオブジェクトはメモリ上の連続した領域に保存される。

fn main(){
    let arr = [10, 20, 30];
    println!("{}, {}, {}", arr[0], arr[1], arr[2]);

    for v in &arr {
        println!{"{}", v};
    }
}

C++の配列

#include <iostream>

void PrintArray1(const int x[5]){
    static_assert(sizeof(x) == sizeof(int*), "");
    for (int i = 0; i < 5; ++i){
        std::cout << x[i] << std::endl;
    }
}

void PrintArray2(const int* x) {
    for (int i = 0; i < 5; ++i){
        std::cout << x[i] << std::endl;
    }
}

int main()
{
    int x[5] = {0, 1, 2, 3, 4};

    PrintArray1(x);
    PrintArray2(x);

    return 0;
}

↓ Rustで書くことこうなる

fn PrintArray1(ary: [i32; 5]) {
    for i in ary {
        println!{"{}", i};
    }
}

fn main(){
    let x: [i32; 5]= [0, 1, 2, 3, 4];

    PrintArray1(x);
}

関数の引数は明確に定義しないといけない。