當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Method.curry用法及代碼示例


本文簡要介紹ruby語言中 Method.curry 的用法。

用法

curry → proc
curry(arity) → proc

根據方法返回一個 curried proc。當調用 proc 時使用的參數數量低於方法的 arity,則返回另一個 curried proc。隻有當提供了足夠的參數來滿足方法簽名時,才會真正調用該方法。

當使用可變參數來確定在調用方法之前需要多少個參數時,應提供可選的arity 參數。

def foo(a,b,c)
  [a, b, c]
end

proc  = self.method(:foo).curry
proc2 = proc.call(1, 2)          #=> #<Proc>
proc2.call(3)                    #=> [1,2,3]

def vararg(*args)
  args
end

proc = self.method(:vararg).curry(4)
proc2 = proc.call(:x)      #=> #<Proc>
proc3 = proc2.call(:y, :z) #=> #<Proc>
proc3.call(:a)             #=> [:x, :y, :z, :a]

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Method.curry。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。