代码之家  ›  专栏  ›  技术社区  ›  Cheng

`&:视图计数'in`发布.published.collect(&:视图计数)`[重复]

  •  1
  • Cheng  · 技术社区  · 15 年前

    here

    Post.published.collect(&:views_count)
    

    我想它等于

    .collect { |p| p.views_count }
    

    但我以前从没见过这种用法,这有名字吗?我在哪里可以找到更多关于它的信息?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Matt Briggs    15 年前

    这实际上是一个相当聪明的黑客把它做成了ruby1.9条.

    & 在ruby中的变量前面,将其强制为proc。它通过打电话 to_proc . 一些聪明的人(我第一次看到这是在“为什么”代码中,但我不会相信他,因为我不知道他是否提出了这个问题)补充说 处理 方法到 Symbol ,基本上是 {|obj| obj.send self} .

        2
  •  2
  •   Chuck    15 年前

    它是 Symbol#to_proc . 这个 & 运算符将Proc对象转换为块,因为Ruby1.8.7条和更新的工具 ,它可以与如下符号一起使用 :views_count {|p| p.views_count} .

    推荐文章