📄 02 - binding a block argument to a variable.rb
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -