我认为这将是一段相当简单的代码。但是,“else”以下代码并不完全是我的,但它说明了块的结构:
adHoc = true
if blah...
adHoc = false
end
if blah...
if adHoc
my_logger.info("REACHED WHENEVER ADHOC IS TRUE")
else
my_logger.info("NEVER REACHED")
end
end
为什么其他部分永远不会到达?
谢谢。
答案 0 :(得分:2)
追踪可能性,只有4种情况:
情景1。
blah 是 true 。 adhoc 设置为 false 。记录从未到达。
情景2。
blah false , adHoc 设置为 true 。这里没有记录任何内容。
情景3。
blah true , adHoc 设置为 false 。没有记录任何内容,因为第二个错误是错误的。
情景4。
blah false , adHoc 设置为 true 。
对blah的第二次调用是真实的,并且“记录了ADHOC是真的”。
正如您所看到的,显示“REACHED WHENEVER ADHOC TRUE”的唯一方法是在场景4中,在调用之间blah ......从false变为true。
对于场景3或4,一种可能性......:
ObjectSpace.count_objects [:T_NODE] .odd?