delphi把運算元據的方法分成了兩種,一種是function,另一種是procedure,分別稱為「函式」和「過程」,這二者最大的差別就是函式擁有返回值而過程沒有,比如按鈕的事件響應過程,這就是乙個過程,因此它沒有返回值;而乙個簡單的函式如求字串長度的函式length,它的函式原形為
function length(s:string):integer;
這個函式有乙個引數s,是您要計算的字串,它的返回值是乙個整數型別,返回字串的長度。
舉乙個例子來說吧:
假設需要乙個函式getnum(),它有兩個整形引數num1,num2,函式經過計算後返回這兩個整數的平均數,函式如下:
function getnum(num1:integer;num2:integer):integer; //函式名
varhaha:integer;
begin
result:=(num1+num2)/2; //將計算結果賦給result
//getnum:=(num1+num2)/2; //也可以這樣寫
haha:=555; //如果對函式名賦值,函式就返回,就是說,如果使用getnum:=(num1+num2)/2;對函式賦值,這句將永遠執行不到。
end;
函式的宣告:
function 函式標示符(引數列表):返回值;
函式的定義:
function myfunc(param1,param2:integer;param3:real):integer;//函式引數間用分號隔開,括號外面的型別是函式的返回型別。
begin
//函式的定義部分
end;
附註:函式返回值有兩種賦值方法,一種是直接對函式名賦值,另一種是賦值給result變數。
對函式名賦值將導致函式返回。
result是函式特有的區域性變數,它的型別與函式的返回型別相同,對它的賦值等於對函式名賦值。與函式名不同,result變數可以出現在賦值號的右邊,如果函式名出現在賦值號的右邊時,則意味著遞迴呼叫,也就是函式呼叫它自己。另外,對result賦值不一定導致函式返回,如:
function myfunc(s:integer):integer;
begin
result:=result*s; //執行賦值但不返回。
myfunc:=s*s;//賦值後程式返回。
end;
例2:function myfunc():integer;
begin
result:=result+5;
//如果使用myfunc():=myfunc()+5;將導致死迴圈。
end;
shell中的函式(function)
函式的定義格式如下 func name 或 function func name 格式1有可能會導致函式名和alias衝突 呼叫格式 func name p1 p2 pn 關於函式引數 需要注意的是,函式應使用return退出,而不能使用exit 會退出指令碼 函式若要返回具體的值而非執行狀態,考慮...
C 中特定巨集 FUNCTION
file 當前源檔名,char字元,使用 fc選項產生全路徑 line 當前原始檔的行號,正數 date 當前編譯日期,char字串,格式 aug 28 2011 time 當前編譯時間,char字串,格式 10 32 12 func 當前函式 function 當前函式 timestamp 最後一...
Function中的相關成員
function中的相關成員 1 name 屬性 作用 獲取函式的名字,是乙個字串型別的。ie瀏覽器不支援這個屬性 function fn n1,n2 console.log fn.name console.log typeof fn.name 2 length 屬性 作用 用來獲取形參的個數 co...