[Rust]Vec(ベクタ)を範囲で初期化するには?

Rust

どうも、ちょげ(@chogetarou)です。

Vec(ベクタ)を範囲で初期化する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Vec(ベクタ)を範囲で初期化するには、collect()を使います。

まず、特定の範囲を用意し、範囲からcollect()を呼び出します。

そして、取得するVecの型を変数もしくは「::<T>」で指定します。

//変数でVecの型を指定する
//start=範囲の最初の位置, end=範囲の最後の位置, T=Vecの型
let vect: Vec<T> = (start..end).collect();
//::<T>でVecの型を指定する
let vect = (start..end).collect::<Vec<T>>()

上記のcollect()は、呼び出した範囲で初期化したVec(ベクタ)を取得します。

スポンサーリンク

使用例

fn main(){
    let nums: Vec<u8> = (1..5).collect();
    let nums2: Vec<u8> = (12..19).collect();
    let nums3 = (1..19).collect::<Vec<u8>>();
    
    println!("{:?}", nums);
    println!("{:?}", nums2);
    println!("{:?}", nums3);
}
出力:
[1, 2, 3, 4]
[12, 13, 14, 15, 16, 17, 18]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

コメント

タイトルとURLをコピーしました