本文為 Delphi 程式碼規範系列第一部分的第 2 節,涵蓋變數命名規則、區域變數、全域變數管理、類型大小寫協定與浮點數類型選擇建議。
WriteFormat: stringP 前綴 (如 PUserRecord)Rec 後綴/中綴Arr 後綴/中綴Class 後綴/中綴i, j, k 或有意義名稱 UserIndex遵循通用命名規則,於 var 區塊宣告,盡量貼近使用位置 (Delphi 傳統要求在區塊開頭)。
| 層級 | 前綴 | 規則 | 範例 |
|---|---|---|---|
| 單元/模組級 | F | 類別私有欄位前綴,同 3.5.2 | FUserName: string |
| 單元介面區 | g | 極度不建議使用;若必須,名稱體現型別 | gprecUserCount: ^TUserCount |
| 跨單元共享 | — | 禁止直接共享全域變數,改用屬性封裝 | 見下方模式 |
type
TFormOverdraftReturn = class(TForm)
private
FUserName: string;
FUserCount: Integer;
procedure SetUserName(Value: string);
function GetUserName: string;
public
property UserName: string read GetUserName write SetUserName;
property UserCount: Integer read FUserCount write FUserCount;
end;
優勢:存取控制、驗證邏輯集中、支援介面導向設計、利於單元測試。
| 類型來源 | 大小寫規則 | 範例 |
|---|---|---|
| 保留字類型 | 全小寫 | string, integer, boolean, variant |
| Win32 API 類型 | 全大寫 | HWND, DWORD, LPARAM, HINSTANCE |
| 使用者定義/系統單元類型 | 首字母大寫,其餘小寫 (PascalCase) | Integer, TForm, TStringList, TDateTime |
var
MyString: string; // 保留字
WindowHandle: HWND; // Win32 API
I: Integer; // 系統單元型別識別碼
| 類型 | 建議 | 說明 |
|---|---|---|
| Real | 避免使用 | 僅為相容舊 Pascal,非 IEEE 標準 |
| Double | 首選 | CPU/總線最佳化、IEEE 754 標準、15-16 位有效數字 |
| Extended | 超出 Double 範圍時使用 | 80 位擴展精度,不支援 Java/跨平台 |
| Single | 互操作需求 (C/C++ DLL) | 32 位精度,部分外部庫要求 |
| Currency | 貨幣/金融計算 | 固定 4 位小數、64 位整數實作、無浮點誤差 |
這些規範看似瑣碎,但能消除團隊協作中 80% 以上的「風格衝突」與「隱性 Bug」,是專業 Delphi 團隊的基礎建設。