娃娃鴨學Ruby 34 可列舉的物件

2021-08-31 10:29:45 字數 768 閱讀 1185

可列舉的物件

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,...