
夠用的 Ruby
|
11
>> def do_three_times
yield
yield
yield
end
=> nil
>> do_three_times { puts 'hello' }
hello
hello
hello
=> nil
區塊也可以使用引數:
>> de f do_three_times
yield('first')
yield('second')
yield('third')
end
=> nil
>> do_three_times { |n| puts "#{n}: hello" }
first: hello
second: hello
third: hello
=> nil
yield 會傳回區塊的執行結果:
>> def number_names
[yield('one'), yield('two'), yield('three')].join(', ')
end
=> nil
>> number_names { |name| name.upcase.reverse }
=> "ENO, OWT, EERHT"
列舉
Ruby 有個名為
Enumerable
的內建模組,
Array
、
Hash
、
Range
及其他可表示數值集合的
類別,都會引入這個模組。
Enumerable
針對集合的尋訪、搜尋、排序,提供了諸多實用
的方法,其中許多方法都要以區塊加以呼叫。不論方法的任務為何,執行區塊裡的程式
碼,通常要靠集合裡某些或全部的值。例如:
>> (1..10).count { |number| ...