Операторы
Операторы - это одна или более строк кода, разделенных точкой с запятой. Простые операторы имеют одну точку с запятой, а составные могут иметь более чем одну точку с запятой и, таким образом, состоят из множества простых операторов.
Это простой оператор:
A := B;
Это составной или структурированный оператор:
begin
B := C;
A := B;
end;
Простые операторы
Простые операторы содержат одну точку с запятой. Если Вам необходимо разделить операторы, то перенесите продолжение оператора на следующую строку с отступом в два пробела:
MyValue :=
MyValue + (SomeVeryLongStatement / OtherLongStatement);
Составные операторы
Составные операторы всегда заканчиваются точкой с запятой.
begin
MyStatement;
MyNext Statement;
MyLastStatement;
end;
Присвоения и выражения
Каждое присвоение и каждое выражение должно располагаться на разных строках.
Правильно a := b + c;
Inc(Count);
Неправильно a := b + c; Inc(Count);
Объявление локальных переменных
Локальные переменные должны иметь стиль Camel Caps. Для локальных переменных префикс F не требуется.
var
MyData: Integer;
MyString: string;
Все переменные с их типами, особенно поля класса, должны быть объявлены на различных строках.
Объявление массивов
В объявлении массива перед и после квадратных скобок должны стоять пробелы.
type
TMyArray = array [0..100] of Char;
Оператор if
Оператор if всегда должен располагаться по крайней мере на двух строках
Неправильно if A < B then DoSomething;
Правильно if A < B then
DoSomething;
В случае составного оператора необходимо поместить каждый оператор на новую строку.
Неправильно if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end;
| |
Правильно if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end;
| |
Все остальные варианты расположения операторов не рекомендуются и не одобряются, хотя и являются синтаксически правильными. Избегайте использования круглых скобок в простых проверках. Например:
Правильно if I > 0 then
DoSomething;
Неправильно if (I > 0) then
DoSomething;
Оператор for
Неправильно for i := 0 to 10 do begin DoSomething; DoSomethingElse; end; | |
Правильно for i := 0 to 10 do begin DoSomething; DoSomethingElse; end;
for I := 0 to 10 do DoSomething;
| |
Оператор while
Неправильно while x < j do begin DoSomething; DoSomethingElse; end; | |
Правильно while x < j do begin DoSomething; DoSomethingElse; end; while x < j do Something;
| |
Оператор repeat until
Правильно repeat x := j; j := UpdateValue; until j > 25; | |
Оператор case
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно case ScrollCode of SB_LINEUP, SB_LINEDOWN: begin Incr := FIncrement div FLineDiv; FinalIncr := FIncrement mod FLineDiv; Count := FLineDiv; end; SB_PAGEUP, SB_PAGEDOWN: begin Incr := FPageIncrement; FinalIncr := Incr mod FPageDiv; Incr := Incr div FPageDiv; Count := FPageDiv; end; else Count := 0; Incr := 0; FinalIncr := 0; end;
| |
Оператор try
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно try try EnumThreadWindows(CurrentThreadID, @Disable, 0); Result := TaskWindowList; except EnableTaskWindows(TaskWindowList); raise; end; finally TaskWindowList := SaveWindowList; TaskActiveWindow := SaveActiveWindow; end;
| |