Hướng dẫn về range
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 65 trên 75.
Trong bài học này, chúng ta sẽ tìm hiểu thêm về cách range hoạt động.
Phạm vi cú pháp cơ bản:
start..end- Tạo phạm vi từ start đến end (không bao gồm end)start..=end- Tạo phạm vi từ start đến end (bao gồm end)
..end- Tạo một phạm vi đến end (không bao gồm end), không có giá trị bắt đầu. Vòng lặpforkhông thể dùng phạm vi này, nhưng bạn có thể dùng nó để cắt mảng từ chỉ số 0:&arr[..3]là 3 phần tử đầu tiên..=end- Tạo một phạm vi đến end (có bao gồm end), không có giá trị bắt đầu, dùng theo cách tương tự:&arr[..=3]là 4 phần tử đầu tiên
start..- Tạo một phạm vi từ start đến vô cực..- Tạo một phạm vi từ âm vô cực đến dương vô cực
Đảo ngược phạm vi bằng .rev():
(0..5).rev()- 4, 3, 2, 1, 0(0..=5).rev()- 5, 4, 3, 2, 1, 0
Bước nhảy dùng .step_by(n):
(0..10).step_by(2)- 0, 2, 4, 6, 8(0..10).rev().step_by(2)- 9, 7, 5, 3, 1
Ví dụ:
// Phạm vi tăng dần cơ bản
for i in 0..5 { }
// Giá trị: 0, 1, 2, 3, 4// Khoảng bao gồm cả hai đầu mút
for i in 0..=5 { }
// Giá trị: 0, 1, 2, 3, 4, 5// Duyệt dải số theo chiều ngược
for i in (0..5).rev() { }
// Giá trị: 4, 3, 2, 1, 0// Tăng 2 sau mỗi lần lặp
for i in (0..10).step_by(2) { }
// Giá trị: 0, 2, 4, 6, 8// Kết hợp đảo ngược và bước nhảy
for i in (0..10).rev().step_by(3) { }
// Giá trị: 9, 6, 3, 0Thử thách
DễBạn được cho hai mảng, numbers1 và numbers2. Hãy in mỗi mảng trên một dòng:
- Mảng 1: bắt đầu ở vị trí cuối cùng của
numbers1rồi lùi lại 3 vị trí mỗi lần (các chỉ số 25, 22, 19, ...), in giá trị ở mỗi vị trí. - Mảng 2: duyệt
numbers2từ phần tử cuối cùng đến phần tử đầu tiên và chỉ in các giá trị chia hết cho 4.
In mỗi giá trị trong dấu ngoặc vuông, đặt , giữa các giá trị và không có gì sau giá trị cuối cùng:
Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...Tự làm thử
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: ");
// Viết code của bạn ở đây
println!();
print!("Array 2: ");
// Viết code của bạn ở đây
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 311Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềNhiều giá trị trả vềÔn tập: hàm SigmaÔn tập: hàm kiểm tra tính hợp lệ14Duyệt qua mảng
Hướng dẫn về rangeVòng lặp for nâng caoMượn trong vòng lặpCác thao tác phổ biến với mảng3Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online