lbq 发表于 2013-5-16 07:23:34

无聊发现的Proc的妙用=w=

于是我就不解释proc是啥了之类的=-=

于是我们在数组里面一般更新一堆Sprite都是:
@sprites.each{|spt| spt.update}

于是发现symbol的to_proc方法很有趣,让我们可以:

@sprites.each(&:update)

真的是好有爱啊~{:nm04:}

懒之圣帝 发表于 2013-5-16 17:33:23

还以为是proc文件夹里的东西。

satgo1546 发表于 2013-5-16 18:37:37

还以为是Proc这个单词能发挥很大作用。
然后刚刚发现LZ半抄袭了我的头像= =

零泪 发表于 2013-5-17 00:08:11

沃槽还能这么写,一直都是for总觉得我呆透了

orzfly 发表于 2013-5-19 21:47:30

本帖最后由 orzfly 于 2013-5-19 21:49 编辑

http://bbs.moe9th.com/thread-13-1-1.html

http://bbs.moe9th.com/thread-12-1-1.html

Ruby200 发表于 2013-5-23 07:16:34

本帖最后由 Ruby200 于 2013-5-23 07:17 编辑

自定义to_proc的class也可以啊~
class It
def initialize
    @expr = []
end
def method_missing(sym, *args)
    @expr.push()
    self
end
def to_proc
    expr = @expr
    lambda{|*a|
       expr.each{|x|
          i = 0
          u = x.map{|y| It === y ? a : y }
          a = a.map{|x| x.send(*u)} # lift up
       }
       a.first #
    }
end
end

def it() It.new end

p .map(&it * 2)
p .inject(&it * it) #p .inject &(it * it)也行
页: [1]
查看完整版本: 无聊发现的Proc的妙用=w=