我看到了这样定义和使用的方法:
def mention(status, *names)
...
end
mention('Your courses rocked!', 'eallam', 'greggpollack', 'jasonvanlue')
为什么不直接使用数组作为第二个参数,而不是使用 splat 将参数组合成一个数组?
def mention(status, names)
...
end
mention('Your courses rocked!', ['eallam', 'greggpollack', 'jasonvanlue'])
这也允许在最后有更多的参数。
def mention(status, names, third_argument, fourth_argument)
...
end
mention('Your courses rocked!', ['eallam', 'greggpollack', 'jasonvanlue'], Time.now, current_user)
最佳答案
splat 感觉很自然,因为这种方法可以合理地应用于单个或多个名称。需要在数组大括号中放置单个参数很烦人且容易出错,例如 mention('your courses rocked!', ['eallam'])
。 splat 还经常节省击键次数,即使方法只适用于 Array
。
此外,您没有理由不能将其他参数放入*names
:
def mention(status, arg2, arg3, *names)
def mention(status, *names, arg2, arg3)
关于ruby - 单个数组参数与多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439216/