#4 楼 @zj0713001 是不是内部定义 name 变量,就会覆盖外部环境在闭包中作用域上下文?
#9 楼 @frank_128 你赢了
#5 楼 @linjunhalida “localVar 被放在 testFn 的堆中”这样说也不太对。大多数人会解释为“testFn() 的作用链保存了上下文环境”。不知道说的对不对,求进一步详解
#5 楼 @linjunhalida localVar 被放在 testFn 的堆中
#24 楼 @xiaoronglv 哈哈,好,换个
#20 楼 @cassiuschen 12306 是个奇葩
不是吧,刚刚 google 一下,居然第一个就是我的这个问题
#10 楼 @piecehealth 如果我刚才测试代码没有写错的话“p = Proc.new { puts "hello test" ; return}”这样写是 OK 的,但“p=procbuilder( )”会报错。用的 ruby2.0
#7 楼 @piecehealth “p 的作用域跟 test1 方法的作用域相同,所以里面的 return 跟在方法里 return 一样的。”这点,我同意。鼠标不行就换
#4 楼 @piecehealth “p=procbuilder( )”会将最后一行返回,不就是给 p 赋值 Proc.new { puts "hello test" ; return}吗?然后再 p.call,感觉也 OK 啊
#2 楼 @piecehealth 那为什么“p= Proc.new { puts "hello test" ; return} ”这个可以
#9 楼 @hailong0707 现在,灰茫茫一片
#7 楼 @jimrokliu 嗯,时光荏苒