我一直在使用if yield self[x]
来判断一个块是否返回true或false。
我需要使该块是可选的,并且我看到建议采用yield if block_given?
的方式。
如何将这两行代码合并?
我一直在使用if yield self[x]
来判断一个块是否返回true或false。
我需要使该块是可选的,并且我看到建议采用yield if block_given?
的方式。
如何将这两行代码合并?
你试过这个吗?
if block_given? && yield(self[x])
# ...
end
# ...
的位置放什么都不会被评估。如果你希望在没有给出块的情况下条件成功,请改用以下方法:if !block_given? || yield(self[x])
# ...
end
unless block_given? && !yield(self[x])
# ...
end
尝试:
if block_given?
if yield self[x]
# Do something....
end
end
您可以在整个if
块后附加一个条件:
if yield self[x]
# do something...
end if block_given?