我已经看到了一种在块中设置方法参数的方式(例如在法拉第中),如下所示:
conn.post do |req|
req.url '/nigiri'
req.headers['Content-Type'] = 'application/json'
req.body = '{ "name": "Unagi" }'
end
答案 0 :(得分:2)
这是“高阶函数”的一个例子。 conn.post
是一种调用另一种方法(在块中定义)的方法
这是一个简单的例子:
def call_block; yield; end
puts call_block { true }
# => true
您也可以将参数传递给yield
:
def yield_args(*args)
yield args
end
yield_args(1, 2) { |item| item }
# => [1,2]