out不在乎m的输入值,它需要给m输出一个内容。
除了不在乎输入值外,out和var没有区别。

解决方案 »

  1.   

    Good,Chechy。out仅仅接受返回的值,对out的任何输入都会被忽略......其它的类似var
      

  2.   

    Out 标志参数m是输出类型的参数,也就是说,调用函数时,函数内部可以对传入的m进行赋值。
      

  3.   

    看一下这一小段程序便可明白了:
    procedure Hello(out S: String);
    begin
      S := 'Hello, ' + S;
    end;procedure TestOut;
    var S: String;
    begin
      S := 'World';
      Hello(S); 
      // 此时S的值是'Hello, '而非'Hello, World'!, 在过程Hello中S的原始值被丢弃了!
      ShowMessage(S); 
    end;