Rustのstd::ops::Rangeの範囲表現

いろんな表現ができるんですね

// `()`で範囲指定ができる
assert_eq!((3..5), std::ops::Range { start: 3, end: 5 });

// 配列を作成し`sum()`することができる
assert_eq!(3 + 4 + 5, (3..6).sum());

let arr = [0, 1, 2, 3, 4];

// `[..]`はすべての配列要素を意味する
assert_eq!(arr[..], [0, 1, 2, 3, 4]);

// `[..3]`は先頭から2までのインデックスを意味する
assert_eq!(arr[..3], [0, 1, 2]);

// `[..=3]`は先頭から3までのインデックスを意味する
assert_eq!(arr[..=3], [0, 1, 2, 3]);

// `[1..]`は1から末尾までのインデックスを意味する
assert_eq!(arr[1..], [1, 2, 3, 4]);

// `[1..3]`は1から2までのインデックスを意味する
assert_eq!(arr[1..3], [1, 2]);

// `[1..=3]`は1から3までのインデックスを意味する
assert_eq!(arr[1..=3], [1, 2, 3]);

https://doc.rust-lang.org/std/ops/struct.Range.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA