Ausführung ruby 2.6.3 rails 5.2.3
Ich war süchtig danach, weil ich Keyword-Argumente nicht wirklich verstand. Obwohl ich gleich verwendet habe, um eine Methode mit einem Standardwert zu definieren, habe ich beim Aufrufen der Methode ein Argument mit einem Schlüsselwort aufgerufen, sodass ein unbeabsichtigtes Argument übergeben wurde und ein Fehler aufgetreten ist. Es war.
#Definieren Sie die Methode mit Standardargumenten
def hello(lang = "ja", place = "Japan")
puts "#{lang} : #{place}"
end
#So rufen Sie ein Argument mit einem Schlüsselwort auf
hello(lang: "en", place: "America")
#=>
{:lang=>"en", :place=>"America"} : Japan
Das Argument wurde als Hash interpretiert und ein unbeabsichtigtes Argument wurde übergeben.
Referenz https://qiita.com/jnchito/items/74e0930c54df90f9704c
def hello(lang: "ja", place: "Japan")
puts "#{lang} : #{place}"
end
#Rufen Sie ohne Argumente an
hello
#=>
ja : Japan
#Rufen Sie auf, indem Sie den Wert des Arguments mit Schlüsselwörtern ändern
hello(lang: "en", place: "America")
#=>
en : America
#Rufen Sie mit schlüsselwortlosen Argumenten auf
hello("en", "America")
#=>
wrong number of arguments (given 2, expected 0)
Wenn Sie eine Methode mit einem Argument mit einem Schlüsselwort ohne Argument aufrufen, wird die Methode mit dem Standardwert aufgerufen. Beim Versuch, mit einem schlüsselwortlosen Argument aufzurufen, tritt ein Fehler auf.
Referenz https://rooter.jp/programming/ruby_method_default/
def hello(lang = "ja", place = "Japan")
puts "#{lang} : #{place}"
end
#Rufen Sie ohne Argumente an
hello
#=>
"ja : Japan"
#Rufen Sie mit schlüsselwortlosen Argumenten auf
hello("en", "America")
#=>
en : America
Recommended Posts