02 - binding a block argument to a variable.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 59 行

RB
59
字号
def repeat(n)  n.times { yield } if block_given?endrepeat(2) { puts "Hello." }# Hello.# Hello.def repeat(n, &block)  n.times { block.call } if blockendrepeat(2) { puts "Hello." }# Hello.# Hello.def repeat(n, &block)  n.times { yield } if blockendrepeat(2) { puts "Hello." }# Hello.# Hello.#---def biggest(collection, &block)  block ? collection.select(&block).max : collection.maxendarray = [1, 2, 3, 4, 5]biggest(array) {|i| i < 3}                   # => 2biggest(array) {|i| i != 5 }                 # => 4biggest(array)                               # => 5#---def pick_random_numbers(min, max, limit)  limit.times { yield min+rand(max+1) }end#---def lottery_style_numbers(&block)  pick_random_numbers(1, 49, 6, &block)endlottery_style_numbers { |n| puts "Lucky number: #{n}" }# Lucky number: 20# Lucky number: 39# Lucky number: 41# Lucky number: 10# Lucky number: 41# Lucky number: 32#---def invoke_on_each(*args, &block)  args.each { |arg| yield arg }endinvoke_on_each(1, 2, 3, 4) { |x| puts x ** 2 }# 1# 4# 9# 16#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?