第三十四章 辞职前-《这个吞金兽不好养》
第(2/3)页
class oneclass {
packagenameitems = null;
....
void funname1(arg){
//initial packagenameitems
packagenameitems = arg;
//other...
}
string funname2(){
\tpackagenameitems = extractpureinfo(packagenameitems);
//do sth
....
result = getitemfrom(packagenameitems, itemname)//1
//do sth
....
return result
}
}
从那里分析,在//1处,本应该是从已经解包过的packagenameitems中,取它的第n项;但这里误传入了解包前的packagenameitems。
似乎输入文本可能会发生几种情况,当然多数情况不需要进一步处理,直接用外部那个变量就行,此时两个变量内容一致,不会触发bug;但少数情况下,外部那个变量需要进一步处理,这才能提取到正确的内容。
这种情况下,两个变量内容不同,误用了前一个变量就读不到正确数据了。
这是个极为隐蔽的逻辑错误。
第(2/3)页