我知道我可以在Ruby中做到这一点:
['a', 'b'].map do |s| s.to_sym end
得到这个:
[:a, :b]
我正在寻找一种更简洁的方法,而不使用块。不幸的是,这不起作用:
['a', 'b'].map #to_sym
我可以比初始代码做得更好吗?
答案 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)
更短