Одной из особенностей языка программирования, которую я считаю существенной, является автоматическая печать отсутствующих именных аргументов, поскольку она делает отладку намного проще.Печать имен отсутствующих аргументов функции в Ruby
Однако, я еще не нашел простой способ сделать это в Ruby. Этот пример кода печатает wrong number of arguments (1 for 3) (ArgumentError)
вместо печати имен каждого отсутствующего аргумента:
def add_three_numbers(num1, num2, num3)
puts(num1 + num2 + num3)
end
add_three_numbers(num2:3)
Я нашел один способ печати недостающих имен аргументов функции, но это очень многословные и избыточный: есть менее многословен способ напечатать имена отсутствующих аргументов функции?
def add_three_numbers(num1=nil, num2=nil, num3=nil)
errorToPrint = ""
if(num1 == nil)
error_to_print += "num1 is undefined, "
end
if(num2 == nil)
error_to_print += "num2 is undefined, "
end
if(num3 == nil)
error_to_print += "num3 is undefined, "
end
if(error_to_print != "")
throw error_to_print
end
puts(num1 + num2 + num3)
end
add_three_numbers(num1:1)
@AndersonGreen Хотя вы можете написать либо camelCase, либо snake_case, ваш код будет намного более совместим с библиотеками Ruby (включая стандартную библиотеку) и авторами, если вы будете придерживаться snake_case. – Aupajo
Почему имя аргумента важно? Какая реальная проблема здесь? Вероятно, вы получаете downvotes, потому что это кажется довольно глупым (например, «я бы предпочел, чтобы ключевое слово' def' было заглавным - любой способ сделать это? »). – Chuck
@Chuck Не всегда легко запомнить имя каждого параметра для функции, особенно если функция имеет множество параметров. Вот почему мне нужно видеть имена отсутствующих параметров, когда я вызываю функцию с именованными аргументами. –