2011-03-26 38 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

相關問題