2013-10-04 17 views
-1

我有一組嵌套函數,每個需要的參數任意列表:傳遞一個splatted PARAM列表嵌套函數

def foo *args 
    bar args 
end 

def bar *args 
    baz args 
end 

def baz *args 
end 

調用foo有一組像:a => :foo, :b => :bar args來爲我們提供了一個單一的元素數組

[{:a => :foo, :b => :bar}] 

,然後使沿到嵌套函數,並再次通過圖示,使得此:

[[{:a => :foo, :b => :bar}]] 
的圖示後

將args [0]傳遞給嵌套函數是否合適,或者是否應該使用某種反向圖示?

回答

1

如果你想傳達splatted參數到另一個功能,只需再次圖示它們(運營商表現在方法調用(使用與方法定義時相反的方向))

def foo(*args) 
    bar *args 
end 
+0

有趣。多麼奇怪的運營商...... –

+0

@kid_drew:ruby充滿了怪癖。你會習慣的。 :) –

+0

古怪的是,但它確實做了很多事情。我來自PHP世界,所以我正在挖掘它。 –