#范围,本文参考 http://www.runoob.com/ruby/ruby-range.html
# 作为序列的范围
# Ruby 使用 ''..'' 和 ''...'' 范围运算符创建这些序列。两点形式创建一个包含指定的最高值的范围,三点形式创建一个不包含指定的最高值的范围。
$, =", " # Array 值分隔符
range1=(1..10).to_a #转换成数组
range2=('a'..'d').to_a
range3=('bar'..'bat').to_a
puts "#{range1}"
puts "#{range2}"
puts "#{range3}"
# 指定范围
digits=0..9
puts digits.include?(5) #看看有没有包括5
ret=digits.min
puts "最小值为 #{ret}"
ret = digits.max
puts "最大值为 #{ret}"
ret=digits.reject {|i| i<5} #排除一些东西
puts "符合条件的有 #{ret}"
digits.each do |digit|
puts "在循环中 #{digit}"
end
# 作为条件的范围
score = 70
result = case score
when 0..40
"糟糕的分数"
when 41..60
"快要及格"
when 61..70
"及格分数"
when 71..100
"良好分数"
else
"错误的分数"
end
puts result
# 作为间隔的范围
# 范围的最后一个用途是间隔检测:检查指定值是否在指定的范围内。需要使用 === 相等运算符来完成计算。
if((1..10)===5) #看后面是不是在前面的范围内
puts "5 in (1..10)"
end
if(("a".."j")==='c')
puts "c in ('a'..'j')"
end
if (('a'..'j') === 'z')
puts "z 在 ('a'..'j')"
end
# Ruby迭代器在 http://www.runoob.com/ruby/ruby-iterators.html
# 迭代(iterate)指的是重复做相同的事,所以迭代器(iterator)就是用来重复多次相同的事。
# 迭代器是集合支持的方法。存储一组数据成员的对象称为集合。在 Ruby 中,数组(Array)和哈希(Hash)可以称之为集合。
# each 迭代器返回数组或哈希的所有元素。
ary=[1,23,4,5]
ary.each do |i|
puts i
end
# Ruby collect 迭代器,collect 迭代器返回集合的所有元素。
# collect 方法不需要总是与一个块关联。collect 方法返回整个集合,不管它是数组或者是哈希。
a=[1,2,3,4,5]
b=Array.new
b=a.collect{|x| x} #collect全选 ,后面大括号中是对数据进行处理变形
puts b
b=a.collect{|x| 10*x}
puts b