Die Antwort ist sowohl Ja als auch Nein.
Sie können das gleiche Ergebnis wie in anderen Sprachen erzielen, indem Sie verschiedene Mechanismen verwenden, darunter:
- Standardwerte für Argumente
- Variablenargumentlisten (Der Splat-Operator)
- Definieren Sie Ihr Argument als Hash
Die tatsächliche Syntax der Sprache erlaubt es Ihnen nicht, eine Methode zweimal zu definieren, selbst wenn die Argumente unterschiedlich sind.
In Anbetracht der drei oben genannten Optionen können diese anhand Ihres Beispiels wie folgt implementiert werden
class Person
def initialize(name, lastName = nil)
name = name + " " + lastName unless lastName.nil?
@name = name
end
end
class Person
def initialize(args)
name = args["name"]
name = name + " " + args["lastName"] unless args["lastName"].nil?
@name = name
end
end
class Person
def initialize(*args)
end
end
Sie werden häufig auf den zweiten Mechanismus in Ruby-Code stoßen, insbesondere in Rails, da er das Beste aus beiden Welten bietet und es syntaktischem Zucker ermöglicht, hübschen Code zu erzeugen, insbesondere, wenn der übergebene Hash nicht in geschweifte Klammern eingeschlossen werden muss.
Dieser Wikibooks-Link bietet weitere Informationen
Person.new(:first_name => "...", :last_name => "...")
Methode. Aus irgendeinem Grund kam es mir nicht in den Sinn, das zu benutzen, aber das beantwortet meine Frage.