查看: 890|回复: 2

Proc.new是什么类

  [复制链接]
头像被屏蔽

七仙女

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-15
回帖
342
发表于 2009-3-26 07:18:01 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
回帖
1260

贵宾

发表于 2009-3-26 07:55:00 | 显示全部楼层
可以说是一个执行对象吧...

就比如
$i = 0
a = Proc.new{|int| $i = int }
p $i # 0
a.call(100)
p $i # 100
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
-.-
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-3-26 08:08:55 | 显示全部楼层
Proc 就是代码块的对象,它能绑定一组局部变量,使得这些变量即使在不同的上下文(作用域)中也能访问,而普通情况下局部变量仅在当前作用域中才是可以访问的
这也是 Ruby 的代码块和其它语言不同的地方,Ruby 的代码块把这段代码及其相关的上下文信息保存下来,以便日后调用,而不是像其它语言一样直接执行
保存在 Proc 中的代码可以稍后调用 call 来执行,而 call 的参数就会传递给代码块中被 "| |" 包围的变量
版主对此帖的认可:『正确答案,感谢你的热心帮助』,积分『+100』。
版主对此帖的认可:『补足正确解答所该得到的积分,感激你的热情帮助...』,积分『+250』。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部