Ruby 4.0 リファレンスマニュアル

instance method Numeric#nonzero?

nonzero? -> self | nil[permalink][rdoc][edit]
() → self?

self が非ゼロなら self を、ゼロなら nil を返します。

p 10.nonzero?   # => 10
p 0.nonzero?    # => nil
p 0.0.nonzero?  # => nil
p 0r.nonzero?   # => nil

非ゼロのときに self を返すので、self がゼロのときに他の処理をさせたければ以下のように書けます。

a = %w[z Bb bB bb BB a aA Aa AA A]
b = a.sort { |a, b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
p b # => ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]

[SEE_ALSO] Numeric#zero?