Ruby教程
Ruby控制语句
Ruby高级

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 rangers 1
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
输出:
Ruby rangers 2

作为条件的范围

范围也被定义为条件表达式。在一组行中定义了不同的条件。这些条件包含在开始语句和结束语句中。
示例:
#!/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 
输出:
Ruby rangers 3

范围作为间隔

范围也可以根据间隔来定义。区间由 === 大小写相等运算符表示。
示例:
#!/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 rangers 4

Ruby 反向范围

Ruby 反向范围运算符不返回任何值。如果某个范围内的左侧值大于右侧值,则不返回任何值。
示例:
#!/usr/bin/ruby 
    puts (5..1).to_a 
上例的输出将不返回任何内容。
要打印反向订单,您可以在正常范围内使用反向方法,如下所示。
<强> 示例:
#!/usr/bin/ruby 
    puts (1..5).to_a.reverse 
输出:
Ruby rangers 5
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4