如何實(shí)現(xiàn)一個局部函數(shù)與過程
定義在函數(shù)和過程內(nèi)部的函數(shù)和過程稱為局部函數(shù)和過程(子程序),子程序只在母過程內(nèi)部有效。
下面我們來看看如何實(shí)現(xiàn)一個局部函數(shù)和過程的定義和使用。
1、新建一個Application。
2、在Form1窗體上放置一個Memo組件(Memo1)和兩個Button組件(Button1和Button2)。
3、雙擊Button1按鈕,在Button1Click事件中輸入以下代碼:
procedure TForm1.Button1Click(Sender: TObject);
- var
- X: Integer;
- {a local procedure}
- procedure Test;
- begin
- Memo1.Lines.Add('Local Function, X = ' + IntToStr(X));
- end;
- begin
- X := 100;
- Memo1.Lines.Clear;
- Memo1.Lines.Add('Main Function, X = ' + IntToStr(X));
- Test;
- end;
4、雙擊Button2按鈕,在Button2Click事件中輸入以下代碼:
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- Test; { 因?yàn)門est是在Button1Click中定義的,因此會報(bào)錯}
- end;
5、按Ctrl + F9編譯該項(xiàng)目,會發(fā)現(xiàn)報(bào)出以下錯誤:Undeclared identifier: 'Test’(未定義的標(biāo)識符)
6、注釋掉Button2Click中的Test過程的調(diào)用,然后重新編譯運(yùn)行,并點(diǎn)擊Button1按鈕后,結(jié)果如下:
分析
Test過程包含在Button1Click過程的var段中,用這種方法聲明的過程就是局部過程,它只局限于包含它的函數(shù)和過程。局部子程序只能被包含它的例程所調(diào)用,而在程序的其他地方時不能調(diào)用的。所以在Button2Click過程中無法實(shí)現(xiàn)Test的調(diào)用。
局部過程和函數(shù)的一個重要性質(zhì)就是過程和函數(shù)中所包含的變量在局部子程序中也有效,如上面的范例Memo1中顯示的兩次X變量的值都是100,說明X變量不但在Button1Click中可用,也可以再它的子過程Test中使用。
以上程序均在Delphi7中編譯通過。
原文:http://www.cnblogs.com/pchmonster/archive/2011/12/22/2298705.html
【編輯推薦】
- 什么時候?qū)W習(xí)編程都不晚
- 函數(shù)式編程很難,這正是你要學(xué)習(xí)它的原因
- 編程技術(shù)面試的五大要點(diǎn)
- 論編程語言的可讀性:老語言更通俗易懂
- 敲擊最多的鍵和編程語言語法