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


Ruby Proc.ruby2_keywords用法及代码示例


本文简要介绍ruby语言中 Proc.ruby2_keywords 的用法。

用法

ruby2_keywords → proc

将 proc 标记为通过普通参数 splat 传递关键字。这只应在接受参数 splat (*args) 但不接受显式关键字或关键字 splat 的 proc 上调用。它标记 proc,如果 proc 使用关键字参数调用,则最后的哈希参数用特殊标志标记,这样如果它是普通参数的最终元素,则向另一个方法调用 splat,并且该方法调用不包括显式关键字或关键字 splat,最终元素被解释为关键字。换句话说,关键字将通过 proc 传递给其他方法。

这应该只用于将关键字委托给另一个方法的过程,并且只用于向后兼容 2.7 之前的 Ruby 版本。

这种方法可能会在某个时候被删除,因为它的存在只是为了向后兼容。因为它在 Ruby 2.7 之前的版本中不存在,所以在调用它之前检查 proc 是否响应了这个方法。另外,请注意,如果删除此方法,则 proc 的行为将发生变化,因此它不会通过关键字。

module Mod
  foo = ->(meth, *args, &block) do
    send(:"do_#{meth}", *args, &block)
  end
  foo.ruby2_keywords if foo.respond_to?(:ruby2_keywords)
end

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Proc.ruby2_keywords。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。