Глава 9: Управляющие структуры.
9.6 Операции && и || как управляющие структуры
Операции & & и || в тексте программы похожи на знаки препинания или компоненты выражения. Можно ли считать их управляющими структурами? В Perl возможно почти все, поэтому давайте разберемся, что же здесь имеется в виду.
Вам часто приходится сталкиваться с концепцией "если это, тогда то". Мы уже видели две подобные формы:
if (это) {
то;
} # один способ
то if это; # другой способ
Вот третья (хотите верьте, хотите нет — но есть и другие):
это && то;
Почему она работает? Разве это не операция "логическое И"? Давайте посмотрим, что происходит, когда это принимает значения "истина" или "ложь".
• Если это — истина, то значение всего выражения все равно не известно, потому что оно зависит от значения элемента то. Поэтому нужно вычислить то.
• Если это — ложь, то все выражение будет ложным и нет никакого смысла смотреть на то. Поскольку вычислять то смысла нет, его можно пропустить.
Как раз это и делает Perl — вычисляет то лишь в том случае, если это истинно, что делает данную форму эквивалентной двум предыдущим.
Аналогичным образом "логическое ИЛИ" работает, как оператор unless (или модификатор unless). Вы можете заменить
unless (это) {
то;
}
на:
это || то;
Если вы знаете, как использовать эти операции в shell для управления командами условного выполнения, то поймете, что в Perl они работают похоже.
Какую же из этих форм использовать? Это зависит от вашего настроения (иногда), от того, насколько велики части выражения, наконец, от того, нужно ли вам заключать выражения в круглые скобки из-за конфликтов приоритетов. Возьмите программы своих коллег и посмотрите, что они делают. В них, вероятно, вы обнаружите влияние каждого из этих факторов. Ларри предлагает ставить самую важную часть выражения первой, чтобы акцентировать на ней внимание.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|