设为首页 收藏本站
登录 /立即注册 /找回密码

URPGs

快捷导航
  • 门户Portal
  • 论坛BBS
  • 群组Group
  • 导读Guide
  • 家园Space
  • 工具Tools
  • 广播Follow
  • 期刊Periodical
  • 排行榜Ranklist
  • 社区茶坊
  • pixlr图片编辑
  • 资源列表
  • photobucket
  • RMVA Lite [In English]
  • RM RTP
  • TryRUBY
  • RMXP+RMVX下载[VeryCD]
  • RMVA下载[66RPG]
搜索
  • 本版
  • 帖子
  • 用户
URPGs»论坛 › 休闲区 › 茶馆 › 无聊发现的Proc的妙用=w=
返回列表 发新帖
查看: 3625|回复: 5

[闲聊] 无聊发现的Proc的妙用=w=

[复制链接]
lbq
lbq 当前离线
积分
199
查看详细资料 窥视卡 雷达卡
发表于 2013-5-16 07:23:34 | 显示全部楼层 |阅读模式
于是我就不解释proc是啥了之类的=-=

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

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

[code=ruby]@sprites.each(&:update)[/code]

真的是好有爱啊~
的

相关帖子

  • • 两个小的变化
  • • 茶馆版图重制~
  • • 这就是我制(dao)作(ban)的中文MC Wiki~精简版
  • • [多图注意]边境之地的冒险=-=
  • • 不科学事件之QQ=-=
  • • 普通用户组的评分调整
  • • [Sign Tutorial]牌子(商店)使用教程...
  • • 是不是应该开一个MC的区=-=?
  • • Office2007造出来的……于是这算素材吗……(众:绝对不算!
  • • 想用wizardpen来跑15年前的破板
回复

使用道具 举报

  • 提升卡
  • 置顶卡
  • 沉默卡
  • 喧嚣卡
  • 变色卡
  • 抢沙发
  • 千斤顶
  • 显身卡
懒之圣帝
懒之圣帝 当前离线
积分
217
查看详细资料 窥视卡 雷达卡
发表于 2013-5-16 17:33:23 来自手机 | 显示全部楼层
还以为是proc文件夹里的东西。
回复 Like Dislike

使用道具 举报

  • 显身卡
satgo1546
satgo1546 当前离线
积分
201
查看详细资料 窥视卡 雷达卡
发表于 2013-5-16 18:37:37 | 显示全部楼层
还以为是Proc这个单词能发挥很大作用。
然后刚刚发现LZ半抄袭了我的头像= =
回复 Like Dislike

使用道具 举报

  • 显身卡
零泪
零泪 当前离线
积分
17
查看详细资料 窥视卡 雷达卡
发表于 2013-5-17 00:08:11 | 显示全部楼层
沃槽还能这么写,一直都是for总觉得我呆透了

点评

懒之圣帝
是迭代器都行的吧?  发表于 2013-5-17 19:28
回复 Like Dislike

使用道具 举报

  • 显身卡
orzfly
orzfly 当前离线
积分
55
查看详细资料 窥视卡 雷达卡
发表于 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

点评

lbq
囧叔果然厉害。。。。  发表于 2013-5-20 02:22
回复 Like Dislike

使用道具 举报

  • 显身卡
Ruby200
Ruby200 当前离线
积分
3
查看详细资料 窥视卡 雷达卡
发表于 2013-5-23 07:16:34 | 显示全部楼层
本帖最后由 Ruby200 于 2013-5-23 07:17 编辑

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

def it() It.new end

p [1,2,3,4,5].map(&it * 2)
p [1,2,3,4,5].inject(&it * it) #p [1,2,3,4,5].inject &(it * it)也行
[/code]
回复 Like Dislike

使用道具 举报

  • 显身卡
返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|意见反馈[feedback]| URPGs RPG Maker 游戏制作讨论

GMT+8, 2025-6-3 00:23 , Processed in 0.034392 second(s), 10 queries .

Powered by Discuz! X3.5

© 2011-2019 URPGs (Discuz! X3.4 © 2001-2019 Comsenz Inc.)

积分 0, 距离下一级还需 积分
快速回复 返回顶部 返回列表