In einer Methode, die mehrere optionale Parameter verwendet, wie kann jeder außer dem ersten angegeben werden?

7

Ich habe eine Methode wie folgt:

%Vor%

Wie kann ich es nennen, wo ich nur den Topping-Parameter überschreibe, sondern die Standardwerte für die anderen verwende, etwa so

%Vor%

Natürlich funktioniert das nicht wie gewünscht, aber ich möchte nur einen Wert für den dritten optionalen Parameter angeben und die ersten beiden bei ihren Standardwerten bleiben lassen. Ich weiß, wie man das mit einem Hash macht, aber ist das eine Abkürzung, um das zu tun, mit der obigen Syntax?

    
Scott Miller 29.03.2009, 21:38
quelle

3 Antworten

17

Sie können diese Syntax nicht in Ruby verwenden. Ich würde die Hash-Syntax dafür empfehlen.

%Vor%

Sie können dies auch mit Positionsargumenten tun:

%Vor%

Beachten Sie, dass diese beiden Techniken verhindern, dass Sie die tatsächlichen nil -Argumente an Funktionen übergeben (wenn Sie manchmal möchten)

    
rampion 29.03.2009, 22:58
quelle
16

Ab Ruby 2.0 können Sie Schlüsselwortargumente verwenden:

%Vor%     
sheldonh 27.02.2015 21:24
quelle
2

Nein. Sie müssen den Wert der Parameter in der Funktion foo überprüfen. Wenn sie die leere Zeichenfolge oder null sind, können Sie sie auf den Standardparameter festlegen.

    
mpen 29.03.2009 21:52
quelle

Tags und Links