qingrui li Dikompilasi dan diberi anotasi berdasarkan Panduan Gaya Objek Pascal Charles Calvert
Catatan: Banyak orang yang menggunakan Delphi tidak memperhatikan gaya pengkodean dan sering menulis kode yang tidak standar, sehingga menyulitkan orang lain untuk memahaminya dan rawan kesalahan. Saya harap artikel ini dapat mendorong sebagian besar penggemar Delphi untuk bersatu dengan gaya standar dan maju bersama.
Artikel ini menjelaskan gaya standar untuk memformat kode Delphi. Sub-gaya ini didasarkan pada konvensi pengkodean tim pengembangan Delphi. Kami mengakui bahwa banyak kode sumber populer menggunakan gaya yang berbeda dari kami, namun kami sangat menyarankan penggunaan gaya Borland di komunitas kode sumber publik.
Delphi adalah bahasa yang indah, dan salah satu keunggulan terpentingnya adalah keterbacaan. Standar ini dirancang untuk meningkatkan keterbacaan. Ketika pengembang mengikuti standar ini, semua pengembang akan mendapatkan keuntungan dari gaya yang konsisten dan mudah dibaca. Upaya untuk menegakkan standar gaya dapat meningkatkan nilai program sumber, terutama selama siklus debugging dan pemeliharaan.
Gaya penamaan InfixCaps
Disebut juga CamelCaps, namanya terdiri dari beberapa kata yang mengungkapkan arti. Huruf pertama setiap kata menggunakan huruf kapital dan sisanya menggunakan huruf kecil.
Seperti: File Saya, IntToStr, Item.
Delphi tidak menggunakan notasi Hongaria dan merekomendasikan nama yang bermakna. Misalnya, gunakan AppName sebagai ganti lpszAppName, gunakan Success sebagai ganti bSuccess, dan gunakan ClientRect sebagai ganti lPRectClientRect.
Penamaan file sumber
Gunakan formulir InfixCaps. Jika mentranspilasi file header C/C++, gunakan nama yang sama dengan file header asli. Jika Anda perlu menggabungkan beberapa file header menjadi satu unit, gunakan nama file header utama, seperti: WinBase.h, Windows.h digabungkan menjadi Windows.pas.
konvensi penamaan
Kecuali untuk kata-kata khusus dan kata-kata arahan, yang semuanya huruf kecil, pengidentifikasi lainnya menggunakan gaya InfixCaps.
Catatan: Tampaknya ada tren terkini yang menggunakan huruf kecil atau singkatan sederhana untuk variabel lokal dan parameter formal.
Pengecualiannya adalah pengidentifikasi dalam file header yang ditranspilasi mempertahankan gaya aslinya.
Nama Type semua diawali dengan T (huruf pertama Type)
Nama fungsi, prosedur, dan metode menggunakan kata kerja atau frasa kata kerja, dan pengidentifikasi lainnya menggunakan kata benda atau frasa kata benda.
Anggota data kelas diawali dengan F (huruf pertama Bidang)
Anggota tipe pencacahan diawali dengan singkatan tipe huruf kecil, biasanya dua huruf, misalnya:
TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll);
Fungsi yang mengembalikan nilai Boolean dimulai dengan Is, misalnya: IsVisible, IsResizable
Penggunaan ruang putih
Sisipkan baris kosong di lokasi yang sesuai untuk memisahkan bagian kode yang berbeda, seperti deklarasi antar kelas, implementasi fungsi, dll.
Tempat menggunakan spasi: Di sebelah kanan tanda baca, di kedua sisi operator biner
Dimana spasi tidak boleh disisipkan:
Contoh yang benar:
function TMyClass.MyFunc(Nilai var: Integer);MyPointer := @MyRecord;MyClass := TMyClass(MyPointer);MyInteger := MyIntegerArray[5];
Contoh kesalahan:
fungsi TMyClass.MyFunc( Nilai var: Integer ) ;MyPointer := @ MyRecord;MyClass := TMyClass ( MyPointer ) ;MyInteger := MyIntegerArray [ 5 ] ;
lekukan
Indentasi dua spasi harus digunakan dan tidak ada karakter tab yang boleh digunakan.
Kode antara Begin...End harus diindentasi, dan Begin...End itu sendiri tidak boleh diindentasi.
Indentasi dua spasi saat melanjutkan garis
Contoh yang benar:
function CreateWindowEx(dwExStyle: DWord; lpClassName: PChar; lpWindowName: PChar; dwStyle: DWORD; if ((X = Y) atau (Y = X) atau (Z = P) atau (F = J) lalumulai S := J;akhir;
while (LongExpression1 atau LongExpression2) dimulai // DoSomething // DoSomethingElse;end;if (LongExpression1) atau (LongExpression2) atau (LongExpression3) lalu
baik
Deklarasi kelas disusun dalam urutan berikut
bidang data
metode
milik
Hirarki akses diatur dalam urutan berikut, dengan pengecualian kode yang dibuat secara otomatis oleh IDE.
Konstruktor dan destruktor dideklarasikan sebelum deklarasi metode. Karena TObject.Destroy adalah fungsi virtual dan TObject.Free memanggil Destroy, jangan gunakan nama lain untuk destruktor. Konstruktor dapat menggunakan nama selain Create, namun umumnya yang terbaik adalah menggunakan Create.
contoh:
TMyClass = class(TObject) ujung publikasi publik yang dilindungi swasta;
Data hanya boleh dideklarasikan pada bagian privat dan diawali dengan F (huruf pertama Field).
ketik TMyClass = class(TObject) private FMyData: Integer; fungsi GetData: Integer; procedure SetData(Nilai: Integer);
Antarmuka mengikuti aturan yang sama