楼上各位大佬都好强 每次用 ruby 遇到问题时来搜一下解决方法,总能学到不少黑魔法
怪我表达不当咯 我只是用‘坑’这个字表达自己在用实例变量的时候犯了错误,踩坑了……另外不管是实例的实例变量还是类的实例变量,我都当‘实例变量’来记了,它们只是属主不一样罢了。
也就是在 i.puts 传入数据后,调用 i.flush
发现解决方法:i.flush
让 thr 先执行完,阻塞其他线程
感谢这么清晰的解答~
原来如此,原来我理解得还不透彻……
#11 楼 @freefishz 嗯,对对对,我确实下意识地以为在 define_method 时会给 j 赋以 i 的值了
嗯嗯,f1,f2 虽然 id 不同,但是它们共享了 do j=i; p j end 这个闭包,所以也就共享了 i 这个变量。可以参考一下《ruby under the microscope》这本书