我知道当我们不知道将传递的参数数量时,会使用splat参数.我想知道我是否应该一直使用splat.每当我传递参数时,使用splat参数是否有任何风险?
Fre*_*ung 18
当您正在编写的方法真正需要具有任意数量的参数时,对于诸如此类的方法,splat非常有用Hash#values_at.
一般来说,如果一个方法实际上需要固定数量的参数,那么使用命名参数要比传递数组更清楚,并且必须记住哪个位置服务于哪个目的.例如:
def File.rename(old_name, new_name)
...
end
Run Code Online (Sandbox Code Playgroud)
比以下更清楚:
def File.rename(*names)
...
end
Run Code Online (Sandbox Code Playgroud)
您必须阅读文档以了解旧名称是第一个还是第二个.在方法内部,File.rename需要围绕是否传递了正确数量的参数来实现错误处理.因此,除非您需要splat,否则"正常"参数通常更清晰.
关键字参数(ruby 2.0中的新增功能)在使用时可以更加清晰,尽管它们在标准库中的使用尚未普及.
| 归档时间: |
|
| 查看次数: |
6289 次 |
| 最近记录: |