2016-04-28 8 views
1

ROR Api Dock beginnt immer mit einer Syntax der Methode. Mein Beispiel wird link_to:Rails API Dock Syntax

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

Meine Frage der auf "name=nil" ist oder "something = nil", die ich auf den meisten jedem Befehl zu sehen.

Ein zweites Beispiel: url_for(options = nil)

Kann jemand erklären, was ist der Punkt, von diesem oder was es versucht, es zu say..does bedeutet, dass die Option optional ist? Warum

ist es wichtig ..

+0

Es bedeutet, dass es auch "Null" für dieses Argument akzeptiert. – Pavan

Antwort

1

Rubin im Gegensatz zum Beispiel JavaScript oder PHP die Anzahl der Argumente ein Verfahren erzwingt mit aufgerufen wird:

def foo(a,b) 
end 

Also, wenn Sie foo ohne Argumente aufrufen Ruby erhöhen eine Ausnahme ArgumentError: wrong number of arguments (0 for 2).

Durch einen Standardwert einstellen, markieren Sie ein Argument als optional:

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

Aufruf foo ohne Argumente werden nicht länger einen Fehler auslösen.

Dies wird oft erstellen Methoden verwendet, die Liste Argumente oder einen Hash nehmen:

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

Wie, warum Rubin tut dies - seine Sprache Design-Entscheidung. Es hilft in vielen Fällen, einfache Fehler aufzuspüren, wo Sie einfach die falschen Argumente übergeben. In einer Sprache, die dies nicht erzwingt, erhalten Sie innerhalb der Methode einen Typ oder undefinierten Fehler, dessen Ursache schwerer zu erkennen ist. IMHO Matz habe dies richtig.

+0

jeez ... so einfach..und macht Sinn..danke. – eaglerockdude