比如创建了一个闭包f,闭包了A.b(对象A的属性b),此时A.b的地址为0x9a180
,闭包函数的意图是修改对象A的属性b,闭包被设置在半小时后执行。
但对象A以及它的属性b会在其它很多地方被操作,在这半小时内,A.b可能会被其它代码替换掉引用,比如A.b的地址变成了0x9a560
。显然这时候闭包的b已经过期了(不再符合预期意图)。当闭包执行时,修改的b还是之前的,它已经不属于对象A,显然达不到预期效果
除了这种情况外,如果有代码会把b置为null,还可能导致程序运行异常。
所以,在使用闭包时,要考虑好闭包从定义到执行的期间,闭包变量会不会被异常干扰,导致执行情况与预期不符
你备案了吗😎
这个思路就是产生一些随机数,然后代入你的程序,模拟人工运行,重复多次,那么结果趋近理论概率。
一直生成随机数,挨个试·