enumerable.rb
module Enumerable
#Kürzung
def all?(*several_variants)
yield to_enum.next; __unknown
end
end
benutze alles? so
sample.rb
%w[ant bear cat].all? { |word| word.length >= 3 } #=> true
Warum kann ich es weitergeben, obwohl das Argument kein "& block" enthält? Dies liegt daran, dass das Blockargument weggelassen werden kann, wenn die ** -Methode ** eine Ausbeute enthält.
Wenn Sie jedoch nicht in die Methode schauen, wissen Sie nicht, ob Sie den Block übergeben können. Daher scheint es notwendig zu sein, zu prüfen, ob Sie ihn weglassen sollen.