Project1
标题:
来问 Proc类的具体用法的
[打印本页]
作者:
kvkv97
时间:
2015-8-11 22:29
标题:
来问 Proc类的具体用法的
def command_101
>>>>
# 设置信息结束后待机和返回调用标志
@message_waiting = true
★ $game_temp.message_proc = Proc.new { @message_waiting = false }
# message_text 设置为 1 行
$game_temp.message_text = @list[@index].parameters[0] + "\n"
line_count = 1
>>>>
end
复制代码
问题:F1中对Proc的说明“Proc 是对块及其环境(局部变量的作用域以及栈框架)进行对象化处理之后得到的过程对象”让人摸不着头脑,这个类作用是什么?后面怎么带一个{}号?{}号里面的@message_waiting = false表示什么?Proc的方法call作用是什么?
作者:
喵呜喵5
时间:
2015-8-11 23:43
本帖最后由 喵呜喵5 于 2015-8-11 23:49 编辑
class A
def creat_proc
var = "Class A"
return Proc.new{ p var }
end
end
class B
def self.test
a = A.new
proc = a.creat_proc
var = "Class B"
proc.call
end
end
B.test
复制代码
看这段实例代码,虽然B中同样定义了一个局部变量 var ,但是执行 p var 后输出的值确是 Class A 的 var,这是因为虽然 Proc 在 Class B 中执行,但是执行的环境却绑定在 Class A 中,所以原本无法穿过作用域门def 与 end的局部变量 var 被成功带到了其他地方
作者:
kvkv97
时间:
2015-8-12 22:42
问题还没 完全弄清啊 ,有谁可以帮助解释下我的 几个 问题 !!!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1