過程無返回值,函式有返回值。
procedure myproc(m,n : integer; o : string; p : single = 2.5; q : string = 'delphi');
如上例所示,過程宣告和定義中,多個引數是用分號隔開的,但在呼叫時是用逗號隔開的 。eg:
myproc(3, 4, 'me', 3.14);
上例中省略了最後乙個引數,當指定乙個引數的預設值後,其後的所有引數都必須指定乙個預設值,如上面的宣告中的引數 p 和 q 。或者說,應該把所有指定預設值的引數放在引數列表的後面。
delphi函式的值有兩種方式返回,第一:把值賦給函式名;第二:把值賦給result。而result實際上是函式名的乙個別名,同時它也是每乙個函式內部自動隱含的區域性變數,其型別跟函式的返回型別相同。
一般情況下,使用result方式返回函式值,而不用函式名來返回。因為在呼叫乙個無引數的函式時只寫函式名就可以呼叫,不像c語言等其它語言一樣即使無引數也要在函式名後加上括號,這樣很容易不小心就寫成遞迴呼叫,進入死迴圈。另外,有時候在coding過程中可能需要修改已經定下的函式名,此時如果用result返回函式值的話就不需要再修改函式體了。
function add:integer;
vari:integer;
begin
result := 0;
for i := 1 to 100 do
add := add + i; //死迴圈
showmessage(inttostr(result););
end;
需要注意的是,delphi和其他一些語言不同,它的函式在返回值的時候並不中止函式本身,它總會執行到函式的最後一條語句。如果需要提前退出,可以用 exit;語句。
Delphi 函式和過程的引數問題
function myf1 x integer integer begin inc x result x end function myf2 var x integer integer begin inc x result x end function myf3 out x integer inte...
Delphi 函式指標 過程 函式型別
pascal 中的過程型別與c語言中的函式指標相似,為了統一說法,以下稱函式指標。函式指標的宣告只需要引數列表 如果是函式,再加個返回值。下面講解指向非物件 一般的 函式 過程的函式指標。例如宣告乙個過程型別,該型別帶乙個通過引用傳遞的整型引數 type intproc procedure var ...
delphi 過程型別
procedural types 過程型別 procedural types overview 概述 過程型別允許你把過程和函式作為 值 看待,它可以賦給變數或傳給其它過程和函式。比如,假設你 定義了乙個叫做calc 的函式,它有兩個整型引數並返回乙個整數值 function calc x,y in...