ROR Api Dock总是以方法的语法开头。我的示例是link_to:
link_to(name = nil, options = nil, html_options = nil, &block) public
我的问题是关于"name=nil"或"something = nil"的,我几乎在每个命令中都能看到它。
第二个示例:url_for(options = nil)
谁能解释一下这是什么意思,或者它试图say..does它意味着这个选项是可选的?
为什么它很重要..
发布于 2016-04-28 22:35:13
与JavaScript或PHP不同的是,Ruby强制使用参数的数量来调用方法:
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要这么做--这是语言设计的决定。在许多情况下,它确实有助于跟踪简单的bug,在这些bug中,您只是传递了错误的参数。在不强制这一点的语言中,你会从方法内部得到一个类型或未定义的错误,这很难找出其根本原因。我想Matz做对了这件事。
https://stackoverflow.com/questions/36915628
复制相似问题