在Ruby中很常见的是看到接收参数哈希的方法,而不是仅仅将参数传递给方法。
我的问题是 - 你什么时候为你的方法使用参数?什么时候使用参数哈希?
当方法有多于一个或两个参数时,使用参数哈希是一个好习惯吗?
答案 0 :(得分:4)
只要它们代表一组语义上属于一起的选项,我就会使用参数哈希。任何其他参数都是函数的直接(通常是必需的)参数,我逐个传递。
答案 1 :(得分:1)
当有许多可选参数时,或者当你想接受任意参数时,你可能想要使用哈希,正如你在许多rails的方法中看到的那样。
答案 2 :(得分:1)
如果你有两个以上的参数。你应该开始考虑使用哈希。 这是一个很好的做法,用干净的代码link text
清楚地解释了答案 3 :(得分:0)
一个明显的用例是当你覆盖子类中的方法时,你应该在调用它时使用哈希参数作为父方法的参数。
答案 4 :(得分:0)
另一方面,这不仅与Ruby有关,而且与所有语言有关:
在不断变化的API中,有时将函数的一些或所有参数声明为单个参数对象(在Ruby中,这些参数可能是散列,在C结构中等等),以便维护API稳定性应该在未来的版本中改变已接受的参数集。然而,明显的缺点是可读性大大降低,除非我真的需要,否则我永远不会使用这种“模式”。