Range 表示連續區間,支援序列產生、條件判斷、區間檢測三大用法。本文系統說明語法、迭代方法與實戰應用。
(1..5) # 1,2,3,4,5 包含端點
(1...5) # 1,2,3,4 排除端點
('a'..'d') # 'a','b','c','d'
range1 = (1..10).to_a # [1,2,3,4,5,6,7,8,9,10]
range2 = ('bar'..'bat').to_a # ["bar", "bas", "bat"]
digits = 0..9
digits.include?(5) # true
digits.min # 0
digits.max # 9
digits.reject { |i| i < 5 } # [5,6,7,8,9]
digits.each { |d| puts "In Loop #{d}" }
# 列印 start 到 end 之間的行
while gets
print if /start/../end/
end
# case 陳述式中使用範圍
score = 70
result = case score
when 0..40 then "Fail"
when 41..60 then "Pass"
when 61..70 then "Pass with Merit"
when 71..100 then "Pass with Distinction"
else "Invalid Score"
end
# 結果:Pass with Merit
if (1..10) === 5
puts "5 在 1..10 範圍內"
end
if ('a'..'j') === 'c'
puts "c 在 a..j 範圍內"
end