Range
example:
1..9
(1..9).to_a #=>[1,2,3,4,5,6,7,8,9]
a=["aa","bb","cc","dd"]
a[0..2]=["aa","bb","cc"]
a..c
(a..c).to_a #=>[a,b,c]
(1..9) ===5 #=> true #可以用做间隔测试
Symbol
Symbol是ruby特有的一种数据类型,每一个变量都对应这一个同名Symbol值,每个Symbol对应一个内部id,因此查询速度很快,常用于作为键名。
1.9以前版本只支持 :name => "xieyu"
新版本同时支持 name:"xieyu"
block
数组和Range可以通过block来进行迭代 example:
(1..5).each{ |i| puts 2*i}
#=>2
#=>4
#=>6
#=>8
#=>10
花括号可以使用do ... end来代替
(1..5).each do |i|
2*i
end
Hash
Hash本质是一个数组,但是它的索引值不局限于数字,它的索引可以是任何对象。