![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
if then [D7]
aka © (2013-12-25 15:12:00)Если isValidID(ID) вернет FALSE, то будет ли вызвана FindID(ID)
if(isValidID(ID) and FindID(ID)) then ....
brother (2013-12-30 08:44:00) [1]да и не логично бы это было... имхо...
Jeer (2013-12-29 23:59:00) [2]>а порядок вычисления операндов and и or всегда слева направо
Другие варианты ( до D7 ) мне пока не встречались.
bems (2013-12-29 21:28:00) [3]
> порядок вызова функций не определен
ты не путаешь с порядком вычисления аргументов при передаче в функцию?
насколько я знаю это именно он не определен, а порядок вычисления операндов and и or всегда слева направо
han_malign (2013-12-26 08:59:00) [4]
> Условие может быть связано с вызовом функции. И возможны
> варианты, когда ее надо вызвать безусловно.
- угу, и сразу натыкаемся на второй побочный эффект- который не оговорен для полного булевского вычисления, но следует полагать, что в этом случае правило будет действовать на общих основания
- порядок вызова функций не определен...
Короче - от лукавого это... Разве что - для хитрой обфускации подойдет.
Inovet (2013-12-26 02:46:00) [5]> [13] Юрий Зотов © (25.12.13 20:21)
> Условие может быть связано с вызовом функции.
Так оно понятно, но годно ли это.
Германн (2013-12-25 23:17:00) [6]
> Ega23 © (25.12.13 16:39) [5]
>
> Но если честно, я так и не смог найти годного примера, где
> нужно полное Bool Evaluation
Вот ведь как работа в Г. Смете портит нормальных людей :)
Юрий Зотов (2013-12-25 20:21:00) [7]> Ega23 © (25.12.13 19:43) [12]
Условие может быть связано с вызовом функции. И возможны варианты, когда ее надо вызвать безусловно. Например, даже если не нашел рубашку, то штаны все равно надел.
> Единственный случай, на мой взгляд, модификация переменных, переданных
> по ссылке в вызовах функций, участвующих в условии.
Не единственный. Функция может модифицировать глобальные переменные. Может красить кнопку в зеленый цвет. Может звонить в Лондон. Может вообще делать что угодно. Например - даже если не нашел рубашку, все равно звони в Лондон.
Ega23 (2013-12-25 19:43:00) [8]
> Оделся:=НаделРубашку and НаделШтаны;
Зачем проверять второе условие по "и", если не выполнено первое?
Зачем проверять условие по "или", если первое выполнено?
> Единственный случай, на мой взгляд, модификация переменных,
> переданных по ссылке, в вызовах функций, учавствующих в
> условии.
За такое, ИМХО, нужно стрелять. Без суда и следствия.
Jeer (2013-12-25 18:27:00) [9]>Ega23 © (25.12.13 16:37) [4]
Ну да, но когда вижу типа "деректива", то прочь, прочь.. :)
brother (2013-12-25 18:17:00) [10]> носить
*использовать
brother (2013-12-25 18:12:00) [11]> Оделся:=НаделРубашку and НаделШтаны;
для [1]
Рубашку можно носить= ее можно одеть and она есть в гардеробе
:)
Sha (2013-12-25 18:01:00) [12]>Ega23
Оделся:=НаделРубашку and НаделШтаны;
Не найдешь рубашку, будешь ходить без штанов)
Ну, конечно, так писать - большая глупость.
Inovet (2013-12-25 17:55:00) [13]> [6] Palladin © (25.12.13 17:50)
> Единственный случай
Статические переменные
Palladin (2013-12-25 17:50:00) [14]А оно и не нужно, если все делать правильно. Единственный случай, на мой взгляд, модификация переменных, переданных по ссылке, в вызовах функций, учавствующих в условии. Но это уже головой думать надо, что делаешь и не садить таких подводных камней в своем коде, ибо зло это.
Ega23 (2013-12-25 16:39:00) [15]Но если честно, я так и не смог найти годного примера, где нужно полное Bool Evaluation
Ega23 (2013-12-25 16:37:00) [16]http://www.delphibasics.ru/$B.php
Jeer (2013-12-25 16:23:00) [17]От вкл/выкл оптимизации - не зависит.
От чего другого - не знаю, может быть.
Компилятор проверяет условие по первой функции и виду булевой операции.
Для and и первой False - вторая не выполняется.
Для or и первой True - вторая не выполняется.
и т.п.
RWolf (2013-12-25 16:08:00) [18]зависит от настроек компилятора.
Jeer (2013-12-25 16:06:00) [19]Так, проверь - потом расскажешь.