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

如何将进程用作块

  •  2
  • user1934428  · 技术社区  · 7 年前

    myarr 和一种方法 foo

    mapper = :foo
    newarr = myarr.map(&mapper)
    

    因为 & 快捷方式将打开存储在中的符号 mapper 变成 Proc

    假设 不是一个 Symbol ,但已经是 过程 例如。这,那么:

    mapper = :foo.to_proc
    newarr = myarr.map(mapper)
    

    Array#map 不接受参数。

    我当然可以做到:

    newarr = myarr.map {|x| mapper.call(x)}
    

    但我想知道是否有捷径(类似于 &:foo )我可以在这里用。

    1 回复  |  直到 7 年前
        1
  •  6
  •   sawa    7 年前

    只要做:

    newarr = myarr.map(&mapper)
    

    A. Proc & mapper & 在里面 &mapper 制图员 变成 作为一个街区。这和什么时候没什么不同 已经是一个 实例;只是将其转换为 过程

    推荐文章