[英]Ruby: yield block from a block?
ruby中的lambda
, proc
, method
或其他類型的塊是否有可能屈服於另一個塊?
就像是...
a = lambda {
puts 'in a'
yield if block_given?
}
a.call { puts "in a's block" }
這不起作用......它只是產生
in a
=> nil
有沒有辦法讓塊調用一個塊?
你可以調用塊,這類似於屈服。
a = lambda {|&block| block.call if block}
a.call {print "hello"}
注意
a.call
不會返回錯誤。
我不確定你能否做到,但類似的東西會是:
在Ruby 1.8.6中:
a = lambda { |my_proc|
puts 'in a'
my_proc.call
}
a.call(lambda { puts "in a's block" })
在Ruby 1.9.1中,您可以擁有塊參數
a = lambda { |&block|
puts 'in a'
block.call
}
a.call { puts "in a's block" }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.