带符号的变量参数

时间:2011-03-26 02:34:20

标签: ruby

我当时正在研究Ruby。我想创建一个可变长度的参数方法,有点像Ruby Rails验证方法。这就像是:

my_method(var1, *list)

我想把它称为:

my_method(whatever_var, :values => ['1','2','3'])

现在,我的问题是,如何:处理价值?我在验证中看到它(在Rails中),但我并不真正理解它的机制。这现在是一个指向数组的符号吗?如何在我的功能中处理它?

1 个答案:

答案 0 :(得分:2)

您可以使用哈希(一种流行的Ruby习语)作为最后一个参数,您可以使用列表,字符串,任何内容来存储值:

def my_method(var1, options={})
  options[:values] ||= []
  options[:names] ||= []

  #code
end

从那里你可以打电话:

my_method(whatever_arg, :values => ['1', '2', '3', '4'], :names => ['mike'])