Ruby:块的yield块?

前端之家收集整理的这篇文章主要介绍了Ruby:块的yield块?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
ruby中的lambda,proc,方法或其他类型的块可能产生另一个块吗?
就像是…
a = lambda {
  puts 'in a'
  yield if block_given?
}

a.call { puts "in a's block" }

这不工作…它只是生产

in a
=> nil

有没有办法得到块来调用块?

解决方法

我不知道你是否可以做到这一点,但类似的事情将是:

在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" }

猜你在找的Ruby相关文章