Beim Versuch, einen Block auf die Summe Methode zu übergeben:Keine Methode Fehler beim Passieren eines Blocks auf ein Verfahren
def sum(list, &block)
list.find_all{yield}.reduce(0, :+)
end
sum([12, 14, 0, 7, 56, 0]) {|i| i % 2 == 0}
ich diesen Fehler:
NoMethodError: undefined method `%' for nil:NilClass
Meine Methode konnte das nicht erkennen i
als ein Element in meiner Liste. Ich weiß nicht, wie ich es behebe. Irgendein Vorschlag?
vielen Dank. Könnten Sie mir zeigen, wo ich diese Syntax in den Ruby-API-Dokumenten finden kann? Ich konnte es in der Rubin-Dokumentation nicht finden. –
Wenn Sie über '& block' sprechen, habe ich [proc to block conversion] verwendet (http://docs.ruby-lang.org/de/2.0.0/syntax/calling_methods_rdoc.html#label-Proc+to+ Block + Konvertierung). 'block' ist ein' Proc'-Objekt, das vom [Blockargument] (http://docs.ruby-lang.org/de/2.0.0/syntax/methods_rdoc.html#label-Block+Argument) '& block erstellt wird 'in deinem eigenen Code. – Amadan