2016-04-28 44 views
1

ROR Api Dock всегда начинается с синтаксиса метода. Мой пример будет link_to:rails api dock синтаксис

link_to(name = nil, options = nil, html_options = nil, &block) public

Мой вопрос на "name=nil" или "something = nil", которые я вижу на большинстве каждой команды.

Второй пример: url_for(options = nil)

Может кто-то объяснить, что смысл этого или то, что он пытается say..does это означает, что параметр не является обязательным?

Почему это важно ..

+0

Это означает, что он также принимает 'nil' за этот аргумент. – Pavan

ответ

1

рубин в отличие, например, JavaScript или PHP навязывает количество аргументов, метод вызывается с:

def foo(a,b) 
end 

Итак, если вы звоните foo без аргументов Рубин поднимет исключение ArgumentError: wrong number of arguments (0 for 2).

Устанавливая значение по умолчанию, вы отмечаете аргумент в качестве факультативных:

def foo(a = nil, b = nil) 
end 

Вызов foo без аргументов больше не вызовет ошибку.

Это часто используются для создания методов, которые могут принимать аргументы списка или хэш:

def foo(a = nil, b = nil, opts = {}) 
    opts.each do |k,v| 
    puts "#{k} : #{v}" 
    end 
end 

Как почему Рубин делает это - его решение дизайна языка. Он во многих случаях помогает отслеживать простые ошибки, когда вы просто передаете неправильные аргументы. На языке, который не обеспечивает этого, вы получите тип или неопределенную ошибку внутри метода, который сложнее определить основную причину. IMHO Matz получил это право.

+0

jeez ... это простой..and смысл..thanks. – eaglerockdude