В программировании формальные аргументы (также известные как «формальные параметры») - это аргументы, которые функция ожидает получить и присваивает имена. Это аргументы, которые обычно действуют аналогично локальным переменным и явно указаны в определении функции. Например, в этом методе:
def say(words, options)
options[:repetitions].times { puts words }
puts "that's all folks!" unless options[:no_footer]
end
Формальными аргументами являются words
и options
. Есть также некоторые неофициальные аргументы, а именно repetitions
и no_footer
. Семантически мы понимаем, что это аргументы функции, но они не являются формальными аргументами.
В формальных аргументах нет ничего конкретного для ruby, но есть определенное значение. В ruby, и особенно в Rails, многие методы имеют только несколько формальных аргументов (и много неформальных аргументов). Например, в этом вызове:
redirect_to :action => 'show', :id => @entry.id
Метод получения действительно имеет только один формальный аргумент, хэш опций.
Стоит также отметить, что «формальные аргументы» часто противопоставляются «фактическим аргументам». Фактические аргументы - это просто значения, которые действительно передаются. Так, например, в этом вызове,
say "I love ruby", :repetitions => 10, :no_footer => true
Фактическими аргументами являются "I love ruby"
и {:repetitions => 10, :no_footer => true}
, и они отображаются на формальные аргументы, приведенные выше, words
и options
.