你们有过“幽灵代码”的体验吗?
秋天之落叶 2018-05-12 10:35:44 很多次了,不知道如何形容,一样的代码,你上午无论如何调整,就是得不出正确的结果,各种逻辑都对,就是结果不正确。
一气之下出去吃饭,下午回来懒洋洋的测试一下,我靠,发现同样的代码,测试结果竟然正确无误,然后各种替换,上午各种不行的方式,下午统统不是问题,都能正常运行了。
百思不得其解,确实有这样的情况,我定名为“幽灵代码”,大家有这种体验吗?
这是昨天的,不设变量,直接使用<>比较字符串不行,使用函数比较字符串可以得到正确结果,各种不行,今天拷回家一运行,全行了。然后去掉变量,去掉函数直接比较字符串,各种试,统统没有问题,晕掉:
procedure TForm1.xgda(Sender: TObject);
var
s1, s2, s3, s4: string;
begin
s1 := Trim(Edit10.Text);
s2 := Trim(dm1.ADO考试.FieldByName('答案').AsString);
s3 := Trim(Memo15.Text);
s4 := Trim(dm1.ADO考试.FieldByName('要点').AsString);
if (CompareStr(s1, s2) <> 0) or (CompareStr(s3, s4) <> 0) then
begin
......
end;
end;
这种情况一般出现在if then语句的条件判断中。