недоступный каталог

"Короткое замыкание" означает, что (идя в порядке оценки) в момент, когда результат ясен, вся дальнейшая оценка пропускается.

Для || и && это означает, что в x = (true || send_mail()) вызов send_mail() пропускается, потому что операнды оцениваются слева направо и true or'd с чем-либо приводит к true.

Для троичного оператора термин "замыкание" можно использовать в более широком смысле, поскольку здесь нет порядка оценки слева направо, как для логических операторов. Концепция здесь более точно называется "ленивая оценка". Это просто означает, что после оценки условия оценивается только соответствующая часть "заключения".

Поэтому x = (ask_user() ? try_send_mail() : try_send_letter()) выполняет только try_send_mail() или try_send_letter(), но никогда оба сразу.

1
17.07.2016, 21:15
0 ответов

Теги

Похожие вопросы