我非常喜欢命名参数,因为它们极大地帮助了我的代码的可读性。
Ruby使用带有哈希的伪命名参数,并且我已经使用该技术实现了一些方法,但是将这三行添加到每个带参数的方法会变得很麻烦:
def something_does_something_with(parameters = {})
default_params = {:some => option, :another => something}
parameters = default_params.merge(parameters)
...
end
或方法标题可以是这样的:
def something_does_something_with(parameters = {:some => option, :another => something})
但是我想如果我提供任何参数,它会覆盖整个默认哈希。
当我使用Objective-C时,命名变量是编程领域中我最喜欢的东西。
有没有办法修改Ruby查看方法头的默认方式,以便命名参数是必需的,或者至少更容易?
答案 0 :(得分:3)
你绝对不能使用第二个例子,因为只有当你传递一整套参数时它才会起作用。
参考你的第一个例子,你可以把它缩短为:
def something_does_something_with(parameters = {})
parameters = {:some=>option,:another=>something}.merge(parameters)
...
end
最后,命名参数计划在下一版本的Ruby中实现 - Ruby 2.0