当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。