Ruby on rails 谁能解释一下'&';在这段ruby代码中?
有人能解释一下在这段ruby代码中“&”的用法吗Ruby on rails 谁能解释一下'&';在这段ruby代码中?,ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,有人能解释一下在这段ruby代码中“&”的用法吗 s.feature_addons.select(&:is_active?) 这意味着: s.feature_addons.select { |addon| addon.is_active? } &调用对象上的到_proc,并将其作为块传递给方法 class Symbol def to_proc Proc.new { |*args| args.shift.__send__(self, *args) } end end
s.feature_addons.select(&:is_active?)
这意味着:
s.feature_addons.select { |addon| addon.is_active? }
&
调用对象上的到_proc
,并将其作为块传递给方法
class Symbol
def to_proc
Proc.new { |*args| args.shift.__send__(self, *args) }
end
end
您可以在其他类中定义to_proc
方法:它意味着:
s.feature_addons.select { |addon| addon.is_active? }
&
调用对象上的到_proc
,并将其作为块传递给方法
class Symbol
def to_proc
Proc.new { |*args| args.shift.__send__(self, *args) }
end
end
您可以在其他类中定义
to_proc
方法:这是to_proc
的快捷方式。例如,您提供的代码相当于:
s.feature_addons.select {|addon| addon.is_active?}
可以在以下位置找到一些关于它的旧文档:
(由ActiveSupport提供时)
然后,它在1.9中成为Ruby核心的一部分
这是
到\u proc
的快捷方式。例如,您提供的代码相当于:
s.feature_addons.select {|addon| addon.is_active?}
可以在以下位置找到一些关于它的旧文档:
(由ActiveSupport提供时)
然后,它在1.9中成为Ruby核心的一部分
您可以使用此语法作为应用于整个集合的方法的简写 其功能与:
s.feature_addons.select { |a| a.is_active? }
您可以将其用于任何集合,例如:
User.all.map(&:id)
etc您可以使用此语法作为应用于整个集合的方法的简写 其功能与:
s.feature_addons.select { |a| a.is_active? }
您可以将其用于任何集合,例如:
User.all.map(&:id)
etc这只是
s.feature_addons.select{a | a.is_active?}的快捷方式
。您经常可以通过映射
、注入
和其他方法看到它,而不仅仅是通过选择
|@not rightfold链接的问题在这方面有一个很好的讨论。@sawa提供了一个很好的解释。它只是s.feature_addons.select{a | a.is_active?}
的快捷方式。您经常可以通过映射
、注入
和其他方法看到它,而不仅仅是通过选择
|“与@not righfold相关联的问题对此进行了更好的讨论。”sawa给出了一个很好的解释。