delphi编程的一点小技巧

      在平时编写代码的时候,我们可能会不注意一些细节,往往也觉得其实没有什么问题,但是公司中很多大牛介绍说,在用字符串传递参数时一定要注意增加const,到现在,基本上对于这条的原因以及内容也比较了解了,但是有时还会忘记在记录(record)或者借口(Iinterface)中增加。

      下面两段代码的比较:

          function GetStringFromData(const AData: string): string;

          var
               I: Integer;
          begin
               I := Pos('name', AData);
               Result := Copy(AData, I, MaxInt);
          end;
          function GetStringFromData(AData: string): string;

          var
               I: Integer;
          begin
               I := Pos('name', AData);
               Result := Copy(AData, I, MaxInt);
          end;

      其实这两段代码在实现过程中的结果是一样的,但是里面的差别需要注意了,如果不加const会导致,在传递参数时,重新开辟一个空间并将传入的参数值赋值给新开辟的空间,如果使用const则不会出现开辟空间以及赋值这样的操作,对于比较大的系统来说是相当节省内存的,另外就是如果系统一直运行着并且运行了很长一段时间,这也可能是一个性能损耗点,导致程序崩溃。

      另外:

       比如说var和out就是有区别,out即使没有赋值,也会将内容清空,也就是说,如果不赋值的话,每次都是其类型的默认值,而var类型则不同,如果没有赋值就会是传入的值,所以有时候写代码不小心就会犯这种错误。

      Copy(AData, I, MaxInt);,这里如果没有限制,需要截取I之后的内容,只要用这个MaxInt即可,可以不用进一步计算长度等。

    

你可能感兴趣的:(delphi,编程,integer,string,function)