Rust 指定した位置でベクタ(可変配列)を分割する

Rustで、指定した位置でベクタ(可変配列)を分割するサンプルコードを記述してます。「split_off」で可能です。Rustのバージョンは1.66.0を使用してます。
環境
- OS windows11 home
- rustc 1.66.0
指定した位置でベクタ(可変配列)を分割
指定した位置でベクタ(可変配列)を分割するには、「split_off」を使用します。
ベクタ.split_off(分割位置);
実際に使用してみます。
fn main() {
let mut v1 = vec![1, 2, 3, 4, 5];
let v2 = v1.split_off(2);
println!("{:?}", v1); // [1, 2]
println!("{:?}", v2); // [3, 4, 5]
}
実行結果を見ると、分割されていることが確認できます。

「0」や、
fn main() {
let mut v1 = vec![1, 2, 3, 4, 5];
let v2 = v1.split_off(0);
println!("{:?}", v1); // []
println!("{:?}", v2); // [1, 2, 3, 4, 5]
}
範囲の最高値を設定すると、空の配列が返ります。
fn main() {
let mut v1 = vec![1, 2, 3, 4, 5];
let v2 = v1.split_off(5);
println!("{:?}", v1); // [1, 2, 3, 4, 5]
println!("{:?}", v2); // []
}
範囲外
範囲外の値を指定するとエラーとなります。
fn main() {
let mut v1 = vec![1, 2, 3, 4, 5];
let v2 = v1.split_off(6);
// thread 'main' panicked at '`at` split index (is 6) should be <= len (is 5)'
println!("{:?}", v1);
println!("{:?}", v2);
}
実行結果

-
前の記事
javascript mapのkeyから配列を作成する 2023.02.18
-
次の記事
ruby 文字列に指定した文字列が含まれているかを判定する 2023.02.18
コメントを書く