[英]Optional explicit block parameter in Ruby?
如評論中所述,問題實際上就是答案。
如果該方法得到一個塊,我想進一步使用它。 但我也有一個不需要該塊的變體。 我可以以任何方式做到這一點嗎?
例如:
def maybe_gets_block(&blk)
if blk
STDERR.puts "Yay! I’ve got a block!"
@callback = blk
else
STDERR.puts "I don’t have a block"
@callback = nil
end
end
您可能正在尋找Kernel#block_given? . 通常,您會將其與Object#yield結合使用。 例如,這是一個片段,它將作用於一個可選的塊或 proc,然后再退回到其他一些動作。
def maybe_gets_block prc=nil
if block_given?
yield
elsif prc.is_a? Proc
prc.call
else
# do something else
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.