如何在不使用块的情况下在Ruby中计算“map”?

时间:2011-09-05 16:03:18

标签: ruby

我知道我可以在Ruby中做到这一点:

  ['a', 'b'].map do |s| s.to_sym end

得到这个:

  [:a, :b]

我正在寻找一种更简洁的方法,而不使用块。不幸的是,这不起作用:

  ['a', 'b'].map #to_sym

我可以比初始代码做得更好吗?

2 个答案:

答案 0 :(得分:12)

阅读一下Symbol#to_proc

['a', 'b'].map(&:to_sym)
# or
['a', 'b'].map &:to_sym
# Either will result in [:a, :b]

如果您使用的是Ruby 1.8.7或更高版本,或者如果您使用的是Rails,则可以使用它 - ActiveSupport将为您添加此功能。

答案 1 :(得分:6)

['a', 'b'].map(&:to_sym)更短