Range ガイド
CoddyのRustジャーニー「基礎」セクションの一部。レッスン 65/75。
このレッスンでは、range の仕組みについてさらに学びます。
基本的な範囲構文:
start..end- start から end までの範囲を作成します(end を含みません)start..=end- start から end までの範囲を作成します(end を含みます)
..end- startの値を指定せず、endまで(endは含まない)の範囲を作成します。forループでは使用できませんが、インデックス0から配列をスライスできます。&arr[..3]は最初の3つの要素です。..=end- startの値を指定せず、endまで(endを含む)の範囲を作成します。同じ方法で使用でき、&arr[..=3]は最初の4つの要素です。
start..- startから無限大までの範囲を作成します..- 負の無限大から正の無限大までの範囲を作成します
.rev()を使って範囲を逆順にする:
(0..5).rev()- 4, 3, 2, 1, 0(0..=5).rev()- 5, 4, 3, 2, 1, 0
.step_by(n)を使ったステップジャンプ:
(0..10).step_by(2)- 0, 2, 4, 6, 8(0..10).rev().step_by(2)- 9, 7, 5, 3, 1
例:
// 基本的な昇順の範囲
for i in 0..5 { }
// 値: 0, 1, 2, 3, 4// 両端を含む範囲
for i in 0..=5 { }
// 値: 0, 1, 2, 3, 4, 5// 範囲を逆順にする
for i in (0..5).rev() { }
// 値: 4, 3, 2, 1, 0// 2ずつ進む
for i in (0..10).step_by(2) { }
// 値: 0, 2, 4, 6, 8// 逆順とステップを組み合わせる
for i in (0..10).rev().step_by(3) { }
// 値: 9, 6, 3, 0チャレンジ
簡単2つの配列、numbers1 と numbers2 が与えられます。それぞれについて1行ずつ出力してください。
- 配列 1:
numbers1の最後の位置から始め、3つずつ後ろに進み(インデックス 25、22、19、...)、各位置の値を出力します。 - 配列 2:
numbers2を最後の要素から最初の要素へ順に見て、4で割り切れる値だけを出力します。
各値を角括弧で囲み、値の間には , を入れ、最後の値の後には何も付けずに出力します。
Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...自分で試してみよう
fn main() {
let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
print!("Array 1: ");
// ここにコードを書いてください
println!();
print!("Array 2: ");
// ここにコードを書いてください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rustオンラインコンパイラ