可列舉的物件
array、hash、range及許多其他類都定義了each迭代器
[1,2,3].each# prints "123"
(1..3).each # prints "123"
ruby的io類也定義了乙個each
file.open(filename) do |f|
f.each
end大多數定義了each方法的類都包含enumerable模組,它定義了許多更特殊的迭代器,
each_with_index
file.open(filename) do |f|
f.each_with_index do |line,number|
print "#:#"
endend
一些常用的enumerable迭代器包括collect、select 、 reject及inject
squares=[1,2,3].collect #=>[1,4,9]
evens=(1..10).select #=>[2,4,6,8,10]
reject和select相反
odds=(1..10).reject #=>[1,3,5,7,9]
data=[2,5,3,4]
sum=data.inject #=>14 (2+5+3+4)
floatprod=data.inject(1.0) #=>120.0 (1.0*2*5*3*4)
max=data.inject #=> 5
2011-4-19 14:34 danny
娃娃鴨學Ruby 注釋
1 注釋 注釋以 字元開頭並持續到該行結束 如果 字元出現在乙個字串或正規表示式字面量裡,那麼它將作為此字串或正規表示式的一部分而非引入一段注釋。this entire line is a comment x this is a string y this is a regular expressi...
娃娃鴨學Ruby 25 If
if if 是最簡單的條件式,具有多種形式 if expression code end expression的值不是false或nil執行 可以有關鍵字 then if x 10 x 1 endif x 10 then x 1 end if x 10 then x 1 end1 else if e...
娃娃鴨學Ruby 13 陣列
b 陣列 b 乙個陣列就是一系列的值,可以通過這些值在該序列中的位置或索引來訪問它們。ruby中 陣列的第乙個值的索引為0 size和length方法返回乙個陣列的元素個數,最後乙個元素的索引是size 1 負索引從陣列的末尾開始計數 1 表示陣列的最後乙個元素,倒數第二個為 2 越界 返回nil,...