Мне пришлось забрать Delphi за недавнюю контрактную работу, которую я делаю, и одна из вещей, которую я хотел бы прояснить, - это выполнение логики в условном выражении, таком как if
.
Я пришел из фона в C/С++ и на этих языках, как только инструкция if
, как известно, терпит неудачу, остальная часть логики не выполняется. Например:
if (somefunc() == FALSE && anotherfunc() == TRUE)
В приведенном выше случае, если somefunc()
возвращает TRUE
, то anotherfunc()
никогда не вызывается.
В Delphi из того, что я вижу до сих пор, это не так. Скорее, для
if (somefunc() = False and anotherfunc() = True) then
то, независимо от того, что возвращает somefunc()
, вызывается anotherfunc()
.
Я читал разные книги Delphi и перечитывал некоторые условные главы и не могу вообще упоминать об этом поведении. Может ли кто-нибудь указать мне где-нибудь в Delphi или Pascal, где указано это поведение?