ROR Api Dock 总是以方法的语法开头。我的例子是link_to:
link_to(name = nil, options = nil, html_options = nil, &block) public
我的问题是我在大多数命令中看到的"name=nil"
or 。"something = nil"
第二个例子: url_for(options = nil)
有人可以解释这是什么意思或它想说什么..这是否意味着该选项是可选的?
它为什么如此重要..
ROR Api Dock 总是以方法的语法开头。我的例子是link_to:
link_to(name = nil, options = nil, html_options = nil, &block) public
我的问题是我在大多数命令中看到的"name=nil"
or 。"something = nil"
第二个例子: url_for(options = nil)
有人可以解释这是什么意思或它想说什么..这是否意味着该选项是可选的?
它为什么如此重要..
Ruby 与 JavaScript 或 PHP 不同,它强制使用调用方法的参数数量:
def foo(a,b)
end
因此,如果您foo
不带参数调用 Ruby 将引发异常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
至于为什么 Ruby 这样做 - 这是一个语言设计决定。在许多情况下,它确实有助于追踪您只是传递错误参数的简单错误。在不强制执行此操作的语言中,您会从方法内部获得类型或未定义的错误,这很难发现其根本原因。恕我直言, Matz做对了。