В моем модуле я определил две функции: с таким же именем, но различное количество аргументов.Неизвестный аргумент при вызове функции в другой функции
module MyMod
def self.doTask(name:, age:)
doTask(name: "John", age: 30, career: "Teacher")
end
def self.doTask(name:, age:, career:)
puts "name:#{name}, age:#{age}, career:#{career}"
end
end
Как вы видите выше, в doTask
, я просто называю doTask
.
В другом файле Руби, я называю doTask
по:
MyMod.doTask(name:"Kate", age: 28)
Но я получаю сообщение об ошибке выполнения:
unknown keyword: career (ArgumentError)
Почему?
Когда вы вызываете метод, вы фактически передаете ему один хэш в качестве аргумента, просто чтобы вы знали. –
@ sagarpandya82 no. Это аргументы ключевого слова. См. Https://robots.thoughtbot.com/ruby-2-keyword-arguments –
@pascalbetz ах, спасибо. –