1

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)

有人可以解释这是什么意思或它想说什么..这是否意味着该选项是可选的?

它为什么如此重要..

4

1 回答 1

1

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做对了。

于 2016-04-28T14:35:13.080 回答