ruby - 如何以编程方式将 args 传递给 Ruby 中的 yield?

标签 ruby

如何将可变数量的 args 传递给 yield。 我不想传递数组(如以下代码那样),实际上我想将它们作为参数的编程数量传递给 block 。

def each_with_attributes(attributes, &block)
  results[:matches].each_with_index do |match, index|
    yield self[index], attributes.collect { |attribute| (match[:attributes][attribute] || match[:attributes]["@#{attribute}"]) }
  end
end

最佳答案

使用 splat 运算符 * 将数组转换为参数。

block.call(*array)

yield *array

关于ruby - 如何以编程方式将 args 传递给 Ruby 中的 yield?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326825/

相关文章:

ruby-on-rails - 带有谷歌地图的铁路。类型错误 : a is null

ruby-on-rails - named_scope 的问题导致 will_paginate 出错 - 如何将 group_by 包含在计数中?

ruby - 需要修改的 gem 源代码

sql - Postgres 查询 ILIKE 和 "%#{}%"

ruby - rbenv 在使用系统时破坏了我的 gem 安装目录

ruby-on-rails - 如何使用具有多字段的 ruby​​cas-server 对用户进行身份验证?

javascript - 独立于编程语言的模型验证

ruby-on-rails - rack-mini-profiler 正在显示分析静态文件

ruby - 如何在 Ruby 中搜索 $PATH 中的可执行文件

ruby-on-rails - Ruby on Rails XML 生成