Project1

标题: Proc.new是什么类 [打印本页]

作者: 七仙女    时间: 2009-3-26 07:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 神思    时间: 2009-3-26 07:55
可以说是一个执行对象吧...

就比如
$i = 0
a = Proc.new{|int| $i = int }
p $i # 0
a.call(100)
p $i # 100 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 紫苏    时间: 2009-3-26 08:08
Proc 就是代码块的对象,它能绑定一组局部变量,使得这些变量即使在不同的上下文(作用域)中也能访问,而普通情况下局部变量仅在当前作用域中才是可以访问的
这也是 Ruby 的代码块和其它语言不同的地方,Ruby 的代码块把这段代码及其相关的上下文信息保存下来,以便日后调用,而不是像其它语言一样直接执行
保存在 Proc 中的代码可以稍后调用 call 来执行,而 call 的参数就会传递给代码块中被 "| |" 包围的变量 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『正确答案,感谢你的热心帮助』,积分『+100』。 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『补足正确解答所该得到的积分,感激你的热情帮助...』,积分『+250』。




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