不只两个, 可以有N个 procedure aaa(var A: string; var B: Integer); begin A := 'AAAAAAAAAAA'; //可以把A返回给调用处的变量 B := 100; //可以把B返回给调用处的变量 end;
procedure myproce(var i:integer;var j:integer); begin i:= 1; j:=1000; end;procedure myproce2; var a,b:integer; begin myproce(a,b); //这里就可以返回a=1,b=1000;end;///////////// ok??
function your_fun_name(your_parameters): variant; begin //如果你对variant类型有足够了解的话,不妨用variant,variant可以随意改变为各种类型,包括数组 end;
procedure myproce(var i:integer;var j:integer); var sumall:int; begin sumall=I+j;end ; 以上只是傳了兩個參數. ----------------------------------------------- function myproce(var i:integer;var j:integer):int; var sumall:int; begin sumall=I+j; result :=sumall; end ; function 才返回結果
to chludlf(春露) 楼上的没错,参数加上var表示传入传出,即使没有返回值也是没关系的,关键是如果这样的返回值很多,而且函数体很复杂,比如需要递归,那么函数的效率就有点低了,空间复杂度增加了。
若参数多,use record return
自己定义一个记录型变量就可以了: 例如: type Mydata = record v1 : string v2 : integer; end;function func(var A: string; var B: Integer):Mydata; begin result.v1 := A; result.v2 := B; end;
procedure aaa(var A: string; var B: Integer);
begin
A := 'AAAAAAAAAAA'; //可以把A返回给调用处的变量
B := 100; //可以把B返回给调用处的变量
end;
begin
i:= 1;
j:=1000;
end;procedure myproce2;
var a,b:integer;
begin
myproce(a,b);
//这里就可以返回a=1,b=1000;end;///////////// ok??
begin
//如果你对variant类型有足够了解的话,不妨用variant,variant可以随意改变为各种类型,包括数组
end;
var sumall:int;
begin
sumall=I+j;end ;
以上只是傳了兩個參數.
-----------------------------------------------
function myproce(var i:integer;var j:integer):int;
var sumall:int;
begin
sumall=I+j;
result :=sumall;
end ;
function 才返回結果
楼上的没错,参数加上var表示传入传出,即使没有返回值也是没关系的,关键是如果这样的返回值很多,而且函数体很复杂,比如需要递归,那么函数的效率就有点低了,空间复杂度增加了。
例如:
type
Mydata = record
v1 : string
v2 : integer;
end;function func(var A: string; var B: Integer):Mydata;
begin
result.v1 := A;
result.v2 := B;
end;