【发布时间】:2018-10-29 04:56:52
【问题描述】:
我习惯了可以缩短
some_array.map { |e| e.to_s }
到
some_array.map(&:to_s)
有没有办法缩短
some_array_of_arrays.map { |e| e[4] }
类似
some_array_of_arrays.map(&:[4])
显然我已经尝试了最后一个示例,但它不起作用。理想情况下,该解决方案将推广到其他“格式奇特”的方法调用,例如 []。
我不对任何 Rails/ActiveSupport 解决方案感兴趣。仅纯 Ruby,假设有某种解决方案。
【问题讨论】:
-
不,该快捷方式仅适用于空值方法(即没有参数的方法)。可以调用
:[](因为e[4]等价于e.[](4))但是无法使用快捷方式传递所需的参数。 -
这个问题已经被问过很多次了。我希望有人会在短时间内找到它的早期版本。
标签: ruby