我看到在Ruby(以及动态类型语言)中,非常普遍的做法是传递哈希表而不是声明具体的方法参数。例如,代替声明一个带有参数的方法并像这样调用它:
def my_method(width, height, show_border)
my_method(400, 50, false)
您可以这样做:
def my_method(options)
my_method({"width" => 400, "height" => 50, "show_border" => false})
我想知道你对此的看法。这是一个好习惯还是坏习惯,我们应该这样做还是不应该?在何种情况下使用这个做法是有效的,在何种情况下会有危险?
{width => 400, height => 50, show_border => false}
不是有效的 Ruby 语法。我认为你想表达的是{:width => 400, :height => 50, :show_border => false}
或者{width: 400, height: 50, show_border: false}
(后者只在 Ruby 1.9.1 及以上版本中有效)。 - sarahhodne