Я работаю с Delphi. Это делает какую-либо разницу в производительности, если мы пишем if condition
по-разному? Например:
if (condition) then
someVar := someVal
else
someVar := someOtherVal;
Или мы можем записать:
if (condition) then begin
someVar := someVal;
end else begin
someVar := someOtherVal;
end;
Я предпочитаю вторую опцию просто, потому что это выглядит лучше, чем первое.
Нет, разницы в производительности нет, созданный код будет идентичным.
Аспект, который может быть более важным, чем то, что второй вариант выглядит лучше, - это то, что он лучше для обслуживания. Если вам нужно добавить еще один оператор в блок else, вы не забудете случайно добавить начало и конец, что поставит оператор вне if и всегда будет выполняться.
Это не повлияет на производительность.
begin
и end
указывают компилятору, где начинается и заканчивается блок кода, но никаких вычислений там производить не нужно.
Begin и End не замедляют ваш код, как уже сказали другие. Я пишу еще один ответ, чтобы еще более явно побудить вас ВСЕГДА использовать begin и end везде, где вы могли бы их использовать.
Хорошо быть либеральным в использовании Begin и End и не беспокоиться о том, что они замедляют работу (потому что это не так).
Если вы пойдете другим путем и не будете использовать begin и end везде, где только можно, вы попадете в другой тип проблем.
Со мной такое часто случалось. Вы можете попасть в беду, когда вставляете строку в место, где нет указания начала и конца. В итоге вы будете ломать голову, гадая, что же вы сделали такого, что испортило ваш код. Начало-конец везде, даже там, где это не нужно, является стандартной операционной процедурой для многих Delphi кодеров.
Единственное, что вы должны иметь в виду о if-elseif-else, это поддерживать общие случаи в своем коде до пограничных случаев, чтобы были оценены минимально возможные условия.