#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
# 范围
# Ruby 支持范围, 并允许以不同的方式使用范围.
# => 作为序列的范围
# => 作为条件的范围
# => 作为间隔的范围
# => 作为序列的范围
# => 序列有一个起点, 一个终点和一个在序列产生连续值的方式.
# => 使用 ".." 和 "..." 范围运算符创建这些序列.
# => 两点创建一个包含指定最高值点范围, 三点创建一个指定最高值-1的范围.
puts "#{(1..5).to_a}"
puts "#{(1...5).to_a}"
range1 = (1..10).to_a
range2 = ('bar'..'bat').to_a
puts "#{range1}"
puts "#{range2}"
range3 = 0..9
puts range3.include?(5)
ret = range3.min
puts "最小值为 #{ret}"
ret = range3.max
puts "最大值为 #{ret}"
ret = range3.reject {|i| i < 5}
puts "不符合条件的有 #{ret}"
range3.each do |i|
puts "在循环中 #{i}"
end
# => 作为条件的范围
#
score = 70
result = case score
when 0..40
"糟糕的分数"
when 41...60
"快要及格"
when 60...70
"及格分数"
when 70..100
"良好分数"
else
"错误的分数"
end
puts result
# => 作为间隔的范围
# 间隔检测: 检查指定值是否在指定的范围内.
# !!! 需要使用 === 相等运算符来完成计算.
if ( (1..10) === 5 )
puts "5 在 ( 1..10 )"
end
if ( ('a'..'j') === 'c' )
puts "c 在 ('a'..'j')"
end
网友评论