这是零的红宝石成语吗?

Ste*_*hen 2 ruby

嗨,我想有一个条件,当它为nil时,它为true,或者它调用check方法并返回true / false。例如:

(apple.nil? || apple.sweet?) && (pear.nil? || pear.sweet?)
Run Code Online (Sandbox Code Playgroud)

它检查所有水果是否都甜(这里只有苹果和梨)。是否有任何红宝石成语来简化此代码?

干杯

Ama*_*dan 6

如果所有的水果都甜

[apple, pear].compact.all?(&:sweet?)
Run Code Online (Sandbox Code Playgroud)

compact除去nil元素,然后all?(&:sweet?)检查其余所有元素是否都很好。

  • 甚至适用于空数组的边缘情况:在这种情况下,“ all”会返回true。 (2认同)