Project1

标题: Symbol#to_proc [打印本页]

作者: orzfly    时间: 2012-5-21 13:26
标题: Symbol#to_proc
本帖最后由 orzfly 于 2012-5-21 18:49 编辑
  1. ["Ruby", "Sugar"].map &:downcase
复制代码
在 Ruby 1.9 中,Symbol#to_proc 的出现使得这样的写法成为了现实。

& 这个符号会把会调用后面的对象的 to_proc 方法得到一个块作为当前调用的方法的块。

标题的写法其实相当于
  1. ["Ruby", "Sugar"].map {|obj| obj.downcase}
复制代码
Symbol#to_proc 的实现相当于下面的代码,这可以用在 Ruby 1.8 中。
  1. class Symbol
  2.   def to_proc
  3.     proc { |obj, *args| obj.send(self, *args)}
  4.   end
  5. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1