Rust ベクタ(可変配列)の値で条件に一致する最初の値の位置を取得する

Rust ベクタ(可変配列)の値で条件に一致する最初の値の位置を取得する

Rustで、ベクタ(可変配列)の値で条件に一致する最初の値の位置を取得するサンプルコードを記述してます。「iter().position」で可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

条件に一致する最初の値の位置を取得

条件に一致する最初の値の位置を取得するには、「iter().position」を使用します。

ベクタ.iter().position(|&引数| 条件);

実際に使用してみます。

fn main() {

    let v = vec![ 1, 2, 4, 8, 16 ];

    println!("{:?}", v.iter().position(|&x| x > 3)); // Some(2)

    println!("{:?}", v.iter().position(|&x| x == 2)); // Some(1)

    println!("{:?}", v.iter().position(|&x| x > 5)); // Some(3)

    println!("{:?}", v.iter().position(|&x| x > 100)); // None

}

実行結果を見ると、取得されていることが確認できます。

空の配列

空の配列に使用すると、全て「None」が返ります。

fn main() {

    let v = vec![0; 0];

    println!("{:?}", v.iter().position(|&x| x > 3)); // Some(2)

    println!("{:?}", v.iter().position(|&x| x == 2)); // Some(1)

    println!("{:?}", v.iter().position(|&x| x > 5)); // Some(3)

    println!("{:?}", v.iter().position(|&x| x > 100)); // None

}

実行結果