Мне нравится избегать ненужных заданий, поэтому я склонен использовать либо
if eval then
begin
// yada yada
Result := True
end
else
Result := False;
или, когда нет окружающего кода, это:
Result := eval;
Следует помнить еще одну вещь: ветвление кода, критичного ко времени, может негативно сказаться на производительности. В некоторых ситуациях обновление значений несколько раз может быть быстрее, если это можно сочетать с предотвращением ветвлений. Вот пример:
for i := 0 to Length(aArray) - 1 do
if Assigned(aArray[i]) then
Inc(AssignedCounter);
Этот код может работать быстрее, если написать так:
for i := 0 to Length(aArray) - 1 do
Inc(AssignedCounter, Ord(Assigned(aArray[i])));