version ruby 2.6.3 rails 5.2.3
J'étais accro parce que je ne comprenais pas vraiment les arguments mot-clé. Même si j'ai utilisé égal pour définir une méthode avec une valeur par défaut, j'appelais un argument avec un mot-clé lors de l'appel de la méthode, donc un argument involontaire a été passé et une erreur s'est produite. C'était.
#Définir la méthode avec des arguments valorisés par défaut
def hello(lang = "ja", place = "Japan")
puts "#{lang} : #{place}"
end
#Comment appeler un argument avec un mot-clé
hello(lang: "en", place: "America")
#=>
{:lang=>"en", :place=>"America"} : Japan
L'argument a été interprété comme un hachage et un argument involontaire a été passé.
Référence https://qiita.com/jnchito/items/74e0930c54df90f9704c
def hello(lang: "ja", place: "Japan")
puts "#{lang} : #{place}"
end
#Appel sans arguments
hello
#=>
ja : Japan
#Appel en changeant la valeur de l'argument avec des mots-clés
hello(lang: "en", place: "America")
#=>
en : America
#Appel avec des arguments sans mot-clé
hello("en", "America")
#=>
wrong number of arguments (given 2, expected 0)
L'appel d'une méthode avec des arguments mot-clé sans arguments appelle la méthode avec des valeurs par défaut. Une erreur se produit lors de la tentative d'appel avec un argument sans mot clé.
Référence https://rooter.jp/programming/ruby_method_default/
def hello(lang = "ja", place = "Japan")
puts "#{lang} : #{place}"
end
#Appel sans arguments
hello
#=>
"ja : Japan"
#Appel avec des arguments sans mot-clé
hello("en", "America")
#=>
en : America
Recommended Posts