将数组的每个元素传递给函数的更短方法

use*_*029 13 ruby

在Ruby中,您可以将map函数应用于数组的每个元素:

@files.map { |f| f.read) }
Run Code Online (Sandbox Code Playgroud)

其中有语法糖:

@files.map(&:read)
Run Code Online (Sandbox Code Playgroud)

是否有任何等价物

@files.map { |f| read(f) } 
Run Code Online (Sandbox Code Playgroud)

那是更像,与上面类似?

old*_*god 18

你可以这样做

@files.map(&method(:read))
Run Code Online (Sandbox Code Playgroud)

但要注意性能.

  • 对我来说,它根本不短.只是更复杂,性能更差:) (4认同)