📅  最后修改于: 2023-12-03 15:19:52.691000             🧑  作者: Mango
Ruby 中的范围(Range)表示一组连续的值。范围是在两个端点之间的所有值的集合,这两个端点可以是整数、字符或日期等。在本文中,我们将深入探讨 Ruby 中的范围。
在 Ruby 中创建范围的最基本方法是使用两个点(..)和三个点(...)构造范围运算符。两个点表示一个闭合范围,而三个点表示一个开放范围。
(1..5) #=> 1, 2, 3, 4, 5
(1...5) #=> 1, 2, 3, 4
还可以使用 Range.new 实例化范围类。
r = Range.new(1, 5) #=> 1..5
r = Range.new(1, 5, true) #=> 1...5
范围既可以作为条件进行比较,也可以作为迭代器,循环遍历其中的数值。
使用 include?
方法检查一个值是否包含在范围内。
(1..5).include?(3) #=> true
(1..5).include?(6) #=> false
可以使用 each
方法循环迭代范围内的元素。
(10..20).each do |n|
print n, ' '
end
#=> 10 11 12 13 14 15 16 17 18 19 20
使用 step
方法按照指定的步长逐一获取范围内的元素。
(10..20).step(2) do |n|
print n, ' '
end
#=> 10 12 14 16 18 20
使用 to_a
方法将范围转换成数组。
(1..5).to_a #=> [1, 2, 3, 4, 5]
范围可以通过 <=>
进行比较。
(1..5) <=> (1..10) #=> -1
(1..10) <=> (1..5) #=> 1
(1..10) <=> (1..10) #=> 0
可以通过将范围转换成数组,再调用 reverse
方法,实现倒序排列。不过要注意 reverse
方法会改变原数组。
(1..5).to_a.reverse #=> [5, 4, 3, 2, 1]
Range
还重载了 ===
,可以作为 case when 分支的比较值。
case 'hello'
when /he/
puts 'contains "he"'
end
case 3
when 1..5
puts 'between 1 and 5'
end
有了本文的介绍,相信您已经了解了 Ruby 中范围的基本操作。范围在 Ruby 中非常实用,可以用来表示一组连续的值,可以作为条件进行比较,也可以作为迭代器,循环遍历其中的数值。