首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 面向對象程式設計:進階函數與遞歸技巧(下)

     編輯:Delphi

函數與程序的語句區塊

在 Delphi 中,函數或程序的執行主體由 begin 開始,以 end 結束。函數必須返回一個值,這可以透過兩種方式實現:將結果賦值給函數名稱,或賦值給內建的 Result 變數。例如計算利息的函數:

function CalculateInterest(Principal, InterestRate: Double): Double;
begin
  CalculateInterest := Principal * InterestRate; // 傳統寫法
  // 或使用 Result := Principal * InterestRate; // 現代推薦寫法
end;

呼叫方式:InterestEarned := CalculateInterest(2000, 0.012);

單元結構與可見性控制

放置在 implementation 區段的程序/函數,僅限該單元內部使用。若需供其他單元呼叫,必須在 interface 區段宣告標題,完整實作置於 implementation,並在呼叫端的 uses 子句引入該單元名稱。

遞歸呼叫與前置宣告

Object Pascal 要求先宣告後使用,但遞歸呼叫(函數 A 呼叫 B,B 再呼叫 A)為例外。此時需在標題末尾加上 forward 保留字進行前置宣告。典型範例展示兩個程序 Test1 與 Test2 相互遞歸,配合按鈕點擊事件啟動,直到變數 Alpha 小於 0 為止。

參數傳遞機制詳解

參數分為形式參數(定義端)與實際參數(呼叫端)。三種主要傳遞模式:

  • 值參數(預設):建立副本,修改不影響實參。procedure Calculate(CalNo: Integer);
  • 變數參數(var):傳遞記憶體位址,修改直接反映實參。procedure Calculate(var CalNo: Integer);
  • 常數參數(const):唯讀保護,防止意外修改,效能優於值參數。

善用 var 可實現多重返回值;const 則保障資料安全。

自訂資料類型建立指南

Delphi 提供豐富的預定義型別,開發者可衍生新類型滿足特定需求:

列舉型別

type
  TDays = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

每個值對應整數序數(Sunday=0),增強程式碼可讀性,且列舉值成為識別符,避免命名衝突。

子界型別

type
  THours = 0..23;
  TWorkDay = Monday..Friday; // 基於列舉型別的子界

限制變數取值範圍,開啟範圍檢查({$R+} 或專案選項)可在執行期捕捉越界錯誤。

陣列型別

type
  TCheck = array[1..10] of Double;
  TTable = array[1..20, 1..20] of Double; // 多維陣列

支援靜態索引範圍,透過迴圈初始化或賦值操作元素。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved