哈希与多个参数?
问题描述:
答
一个显而易见的用例是,当您重写子类中的某个方法时,您应该在调用父方法的参数时使用散列参数。
答
只要它们表示语义上属于一组的选项,就使用参数散列。任何其他参数都是直接(通常是必需的)参数的函数,我一个接一个地传递。
答
如许多rails的方法中所看到的,您可能希望在有很多可选参数或者想要接受任意参数时使用散列。
答
在另一方面,这不仅关系到Ruby,但所有的语言:
在API的这是在不断变化,有时可作为一个单一的参数对象的部分或全部参数申报的功能(在Ruby中,这些可以是散列,C结构等),以便在未来版本中接受的参数集发生更改时维持API稳定性。然而,明显的缺点是可读性急剧下降,除非真的需要,否则我绝对不会使用这种“模式”。
+1 - 应该不需要参数散列中的任何内容。可选参数可以用默认值命名,但我倾向于将它们传递给哈希,并在需要时在方法体中设置默认值。 – 2009-08-28 16:56:33