Phạm vi là gì?
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 6 trên 56.
Bạn đã dùng dải giá trị với vòng lặp for và thao tác cắt mảng. Nhưng dải giá trị là một đối tượng Ruby thực sự, không chỉ là cú pháp, nó có các phương thức riêng.
Tạo một phạm vi bằng .. (hai dấu chấm, bao gồm giá trị cuối) hoặc ... (ba dấu chấm, không bao gồm giá trị cuối):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Chuyển một khoảng thành mảng bằng to_a để xem chính xác khoảng đó bao gồm những gì:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Phạm vi không chỉ dùng cho số. Chúng còn hoạt động với mọi thứ có thứ tự, kể cả chữ cái:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Thử thách
Người mớiĐọc hai số nguyên (hai dòng đầu vào): một giá trị start và một giá trị end_value. In ra ba dòng:
- Phạm vi bao gồm cả hai đầu mút
start..end_valuedưới dạng mảng (dùnginspect) - Phạm vi không bao gồm đầu mút cuối
start...end_valuedưới dạng mảng - Kích thước của phạm vi bao gồm cả hai đầu mút
Với đầu vào 1 rồi đến 5, đầu ra là:
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5Tự làm thử
start = gets.to_i
end_value = gets.to_i
# TODO: in ra khoảng gồm cả hai đầu mút, khoảng không gồm điểm cuối và số phần tử tính cả hai đầu mút
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 Logic và luồng xử lý
1Tìm hiểu sâu về chuỗi
Tổng quan về phương thức chuỗiNội suy chuỗiDuyệt qua chuỗiTách và nối chuỗiÔn tập: Đan chuỗi4Khối lệnh, Proc và lambda
Khối lệnh là gì?do..end và dấu ngoặc nhọnTừ khóa yieldTham số của khối lệnhProc và lambdaÔn tập: bộ lặp tùy chỉnh7Hash, phần 2
Hash.new với giá trị mặc địnhLặp qua HashHash lồng nhauGộp và chuyển đổiÔn tập: Bộ đếm tần suất10Dự án: Hồ sơ học sinh
Tổng quan dự ánThêm học sinh2Phạm vi
Phạm vi là gì?Các phương thức của phạm viPhạm vi trong case / whenÔn tập: luyện tập với phạm vi5Sức mạnh của Enumerable
select và rejectNối chuỗi mapreduce / injectcount, all?, any?, none?group_by và partitionsort_by, min_by, max_byÔn tập: quy trình dữ liệuTự luyện tập: Trình biên dịch Ruby online