输出方式-京东应用架构设计

(4).输出方式以out关键字声明的参数将以输出而非输入方式传递。举例说明,以out声明的参数像是饮料生产线上的空瓶,经过不断的传递及加工,开始时传入的空瓶被装满饮料后传出生产线。很明显,我们需要的是饮料而非空瓶,空瓶仅仅只是为了装饮料而被传入生产线。看一下例子: function sample1(s:string):integer; begin result := length(s); //函数返回字符串S的长度end;此函数非常简单:传入一个字符串,函数将并返回此字符串的长度。利用out参数可将其改成以下形式: procedure sample2(s:string; out leng:integer); begin leng := length(s); end;分别调用sample1与sample2: var i,n:integer; s:string; begin s := 'delphi'; i := sample1(s); sample2(s, n); end;运行完毕后,i与s的值相等,均为6。看到这里,读者一定发现:即然可以使用函数返回特定值,为何还要使用out参数?理由:函数只能返回一个值,而有时需要同时返回多个值。而使用out参数就可以同时返回多个值。这种特性使得out参数在编写COM程序时非常方便。就使用上而言,var参数与out参数完全一样,var参数也可存储返回值,二者唯一的区别在于:将一个变量作为out参数传入例程之前,系统会自动清空变量原来的值;而var方式则没有这种处理。例如下面的示例中,var_sample没有进行任何操作,但将str作为参数调用var_sample后,str却变成了空值:
pdf 文件大小:7.56MB