小心,函数的返回值你必须管!

别说谁变了你拦得住时间么 提交于 2020-03-11 13:07:03

这两天遇到问题,我们的FMX项目,其中一个功能在windows上运行正常,在Android上不正常。

查到最后,竟然是同事没有处理一个函数的返回值造成的。

function Test(aName:string):TObject;
var
  o:TObject;
begin
  ...
  if aName='123' then
  begin
     o:=TObject.Create;
     result:=o;
  end;
end;

类似上面的代码,在windows上,当aName<>123时,返回nil,而在android上,则不返回nil。修正如下:

function Test(aName:string):TObject;
var
  o:TObject;
begin
  result:=nil;//修正.
  ...
  if aName='123' then
  begin
     o:=TObject.Create;
     result:=o;
  end;
end;

印象中写过有大牛写过,必须养成处理函数默认返回值的习惯。这回被现实上了一课!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!