有没有更好的方法从Ruby中的块获取值?

我一直在使用if self [x]来评估一个块是返回true还是false.
我需要使块可选,我看到如果block_given会产生建议吗?
我怎样才能将这两条线组合起来?

解决方法

你试过这个吗?
if block_given? && yield(self[x])
  # ...
end

当没有给出阻塞时,这种情况总是会失败,即不会对代替#…的任何东西进行评估.如果您希望条件成功,如果没有给出阻止,请执行以下操作:

if !block_given? || yield(self[x])
  # ...
end

或者这个,虽然我觉得它更难读:

unless block_given? && !yield(self[x])
  # ...
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...