Ich habe eine Methode, die einen Codeblock nimmt.Mehrere Codeblöcke als Argumente in Ruby übergeben
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
und ich nenne es wie folgt aus:
opportunity { @some_array.empty? }
Aber wie gehe ich es mehr als ein Codeblock, so dass ich Ausbeute zweimal verwenden könnte, so etwas wie dieses:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
und:
opportunity {@some_other_array.empty?} { @some_array.empty? }
Ich bin mir bewusst, dass dieses Beispiel ohne Ausbeute gemacht werden könnte, aber es ist nur zur Veranschaulichung.
Ist es eine andere Möglichkeit zu erklären, dass die Funktionen – user5020
Proc.new {} oder Lambda {} auch funktionieren. Jedes Objekt, das auf "call" antwortet, wird funktionieren – Kylee
Ist die Methode '.()' Ein Alias von '.call'? – MrYoshiji