2016-04-28 6 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しようとしているが何を説明することはできますか?

はなぜそれが重要...例えば、JavaScriptやPHPは、引数の数を強制するための方法を使って呼び出されるとは異なり

+0

これは、その引数に 'nil'も受け入れることを意味します。 – Pavan

答えて

1

Rubyは:だから

def foo(a,b) 
end 

あなたは引数なしでfooを呼び出すとRubyが発生します例外ArgumentError: wrong number of arguments (0 for 2)です。

デフォルト値を設定することにより、オプションとして引数をマークしません:引数なしでfooを呼び出す

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

はもはやエラーが発生します。 - その言語の設計上の決定Rubyはこれを行い理由として

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

これは、多くの場合、リストの引数やハッシュを取ることができますメソッドを作成するために使用されます。多くの場合、間違った引数を渡すだけの簡単なバグを追跡するのに役立ちます。これを強制しない言語では、メソッドの内部からタイプまたは未定義のエラーが発生し、その根本的な原因を突き止めることは困難です。 IMHO Matzこれを得ました。

+0

じゃあ...シンプルで、意味があります。 – eaglerockdude