「Rust」配列、スライス(Vector型)の数値での初期化

スポンサーリンク

今回はRustで配列、Vectorで数値での初期化について解説します。

配列

コンパイル時にサイズが確定している必要があります。

OK

fn func() {
    const SIZE: usize = 10;
    let array: [usize; 10] = [1; SIZE];
    println!("{:?}", array);
}


[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

NG

「expected value, found builtin type usize」でエラーとなる

fn func(size:usize) {
    let array: [usize; 10] = [1; usize]; <- ここ
    println!("{:?}", array);
}

Vector

Vector型の初期化はVec::new()もしくはマクロのvec![]で行えます。

OK

fn func() {
    const SIZE: usize = 10;
    let v = vec![1; SIZE];
    println!("{:?}", v);
}

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

OK

fn func(size: usize) {
    let v = vec![1; size];
    println!("{:?}", v);
}

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]