2011-03-26 39 views
1

我通常在学习Ruby的时候。我想创建一个可变长度参数方法,有点像Ruby Rails验证方法。这将是这样的:带符号的变量参数

my_method(var1, *list) 

,我也想这样称呼它:

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

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

回答

2

您可以使用哈希(一个流行的Ruby成语)作为最后一个参数,您可以在其中存储与列表,串,什么都值:

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

    #code 
end 

从那里,你可以拨打:

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

这正是我想要thanx! – Spyros 2011-03-26 02:47:37

相关问题