Ruby 范围
Ruby 范围
Ruby 范围表示一组具有开始和结束的值。它们可以使用 s..e 和 s...e 文字或使用 ::new 构建。
其中包含 .. 的范围从头到尾包含在内。其中包含 ... 的范围仅运行最终值。
puts (-5..-1).to_a
puts (-5...-1).to_a
puts ('a'..'e').to_a
puts ('a'...'e').to_a
输出:
Ruby 有多种定义范围的方法。
范围作为序列
范围作为条件
范围为间隔
范围作为序列
定义范围最自然的方式是按顺序排列。他们有一个起点和一个终点。它们是使用 .. 或 ... 运算符创建的。
我们正在从 0 到 5 的范围内取样。在此范围上执行以下操作。
示例:
#!/usr/bin/ruby
range = 0..5
puts range.include?(3)
ans = range.min
puts "Minimum value is #{ans}"
ans = range.max
puts "Maximum value is #{ans}"
ans = range.reject {|i| i < 5 }
puts "Rejected values are #{ans}"
range.each do |digit|
puts "In Loop #{digit}"
end
输出:
作为条件的范围
范围也被定义为条件表达式。在一组行中定义了不同的条件。这些条件包含在开始语句和结束语句中。
示例:
#!/usr/bin/ruby
budget = 50000
watch = case budget
when 100..1000 then "Local"
when 1000..10000 then "Titan"
when 5000..30000 then "Fossil"
when 30000..100000 then "Rolex"
else "No stock"
end
puts watch
输出:
范围作为间隔
范围也可以根据间隔来定义。区间由 === 大小写相等运算符表示。
示例:
#!/usr/bin/ruby
if (('a'..'z') === 'v')
puts "v lies in the above range"
end
if (('50'..'90') === 99)
puts "z lies in the above range"
end
输出:
Ruby 反向范围
Ruby 反向范围运算符不返回任何值。如果某个范围内的左侧值大于右侧值,则不返回任何值。
示例:
#!/usr/bin/ruby
puts (5..1).to_a
上例的输出将不返回任何内容。
要打印反向订单,您可以在正常范围内使用反向方法,如下所示。
<强>
示例:
强>
#!/usr/bin/ruby
puts (1..5).to_a.reverse
输出:
