Hier ist mein Programm:
%Vor%In Zeile 1 beschweren wir uns
tests.rb: 1: Syntaxfehler, unerwartet '=', erwartet ')'
def berechnen (* Zahlen, Optionen = {})
Danke @maerics und @JorgWMittag -
Wenn Sie ein Splat haben, reserviert es alle Argumente, weshalb es mein zweites "Optionen" -Argument nicht mochte. Ich habe dieses Problem behoben, indem ich meine Argumente auf -
umgestellt habe %Vor%Das splat bedeutet "benutze alle verbleibenden Argumente", aber dann stellst du ein optionales Argument zur Verfügung. Wie könnte der Interpreter wissen, ob das letzte Argument Teil der "Nummern" splat oder der optionalen "Optionen" ist?
Sie können nur obligatorische Argumente nach dem Splat-Argument haben. Optionale Argumente müssen vor dem Splat stehen.
Eine Pseudo-Regex für Parameterlisten in Ruby ist ungefähr so:
%Vor%Hier ist ein Beispiel:
%Vor% Schau dir an, wie extract_options!
hinter Rails funktioniert.
Tatsächlich können Sie dies von Ruby 2.0 erreichen, indem Sie Schlüsselwortargumente verwenden. Wenn Sie eine Methode wie folgt berechnen:
%Vor%Dann kannst du diese Methode folgendermaßen aufrufen:
%Vor%Und Sie erhalten -3 als Ergebnis.
Tags und Links ruby