ruby - 这个 '&' 在 ruby​​ 中是什么意思?

标签 ruby

<分区>

https://github.com/activeadmin/activeadmin/blob/1c85c5654a2ce1d43d4c64d98b928ff133d46406/lib/active_admin.rb#L95

此代码中的&(前缀为ActiveAdmin)是什么意思?

def before_load(&block)
  ActiveSupport::Notifications.subscribe(
    ActiveAdmin::Application::BeforeLoadEvent,     
    &ActiveAdmin::Event.wrap_block_for_active_support_notifications(block)
  )
end

最佳答案

在函数 & 中,'splats' block (也对其调用 to_proc),类似于用于常规参数的 *

这有点等同于

def before_load(&block) # this binds provided block into block variable
  ActiveSupport::Notifications.subscribe(ActiveAdmin::Application::BeforeLoadEvent){|some_params_maybe|
    ActiveAdmin::Event.wrap_block_for_active_support_notifications(block).call(some_params_maybe)
  }
end

关于ruby - 这个 '&' 在 ruby​​ 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37075127/

相关文章:

ruby - Ruby 是否提供响应 OS X 上的 Apple 事件的机制?

Ruby 类、包含和作用域

ruby-on-rails - 路由错误页面 404

Ruby 数组减法?

ruby - 是否可以在 Ruby 中定义一个名称以 : (colon)? 结尾的方法

ruby-on-rails - 将参数传递给 Rails Action 邮件程序

ruby-on-rails - 在 Ruby On Rails 中获取属性的总和

ruby-on-rails - 指定 rails 中种子文件的执行顺序

ruby-on-rails - Rails 使用动态选项枚举

ruby - 向现有模型添加单表继承 (STI)