Các phương thức của phạm vi
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 7 trên 56.
Các khoảng có những phương thức tiện lợi, giúp bạn không phải tự viết vòng lặp.
include? kiểm tra xem một giá trị có nằm trong khoảng hay không:
range = 1..10
puts range.include?(5) # true
puts range.include?(11) # falsemin, max và size hoạt động trực tiếp trên các khoảng:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step lặp qua phạm vi, mỗi lần nhảy một khoảng cố định. Cách này hữu ích khi bạn không muốn lấy mọi giá trị:
(0..10).step(2) do |n|
puts n
end
# 0, 2, 4, 6, 8, 10Và each hoạt động giống như với mảng:
(1..3).each { |n| puts n * n }
# 1
# 4
# 9Thử thách
DễBạn được cho một phạm vi bao gồm cả hai đầu mút và một danh sách các số đoán. Hãy tính điểm cho các số đoán và tóm tắt phạm vi.
Đọc hai dòng:
- Hai số nguyên cách nhau bằng dấu cách:
startvàend_value - Một danh sách các số nguyên được phân tách bằng dấu phẩy
Dùng phạm vi start..end_value, in ra:
Hit: <n>, trong đónlà số lượng số đoán nằm trong phạm vi (dùnginclude?)Span: <n>, trong đónlàsizecủa phạm viMultiples of 3 sum: <n>, trong đónlà tổng của mọi bội số của 3 trong phạm vi (dùngstep, bắt đầu từ bội số đầu tiên của 3 lớn hơn hoặc bằngstart)
Với đầu vào 1 10 ở dòng đầu tiên và 3,5,11,7,-2 ở dòng thứ hai, đầu ra là:
Hit: 3
Span: 10
Multiples of 3 sum: 18(Các số đoán trúng: 3, 5, 7. Các bội số của 3 trong 1..10: 3+6+9 = 18.)
Tự làm thử
start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)
# TODO: Đếm số lần đoán trúng bằng include?, tính độ dài khoảng bằng size, tính tổng các bội số của 3 bằng step
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