П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 183581 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 83474 раз(а).

Учебник HTML.
Просмотров 77689 раз(а).

Руководство по PHP5.
Просмотров 48516 раз(а).

Хостинг через призму DNS.
Просмотров 55914 раз(а).

Подборка текстов стандартных документов.
Просмотров 47797 раз(а).

Учебник PHP - Самоучитель
Просмотров 54288 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 55436 раз(а).

Внешние атаки...
Просмотров 44825 раз(а).

Учебник PHP.
Просмотров 39768 раз(а).

SSI в примерах.
Просмотров 29893 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

7. Выражения

7.14 Приоритет операторов (Как операторы "гнездятся")

Приоритет операторов определяет их группировку, когда они входят в состав одного выражения. Например, `*' имеет более высокий приоритет чем `+'; так, `a + b * c' означает перемножить b и c и затем добавить a к произведению (i.e. `a + (b * c)').

Можно преодолеть приоритет операторов употреблением скобок. Можно трактовать правила приоритета как подразумеваемую расстановку скобок. Рекомендуется всегда употреблять скобки при необычной комбинации операторов для облегчения ее чтения другими людьми или вами самими. Явное употребление скобок помогает предотвращать многие ошибки.

Когда употребляются вместе операторы одного приоритета, сначала заключается в скобки самый левый оператор, исключая присваивания, условные операторы и возведение в степень, которые группируются в обратном порядке. Так, `a - b + c' группируется как `(a - b) + c', а `a = b = c' группируется как `a = (b = c)'. Приоритет одноместных префиксных операторов не имеет значения до тех пор пока это касается только одноместных операторов, потому что имеется только один путь их интерпретации--сначала внутренние. Так, `$++i' означает `$(++i)' и `++$x' означает `++($x)'. Однако, когда другие операторы следуют за операндом, то приоритет одноместных операторов может играть роль. Так, `$x^2' означает `($x)^2', но `-x^2' есть `-(x^2)', так как `-' имеет меньший приоритет чем `^', а `$' имеет больший приоритет.

Приведем таблицу операторов awk в порядке от наивысшего приоритета к низшему:

(...) Grouping. $ Field. 

++ -- Increment, decrement. 

^ ** Exponentiation.

Эти операторы группируются справа налево. (Оператор  `**' не входит в POSIX.)

+ - ! Одноместные  plus, minus, логическое "not".
* / % Умножение, деление,  modulus.
+ - Сложение, вычитание.

Конкатенация.

Для конкатенации нет специального обозначения. Операнды просто пишутся друг за другом.

! != == != ? ?= ?? --

Отношения и перенаправления.

Операторы отношения и перенаправления имеют одинаковый приоритетный уровень. Символы `?' указывают и отношения и перенаправления; разница между ними определяется по контексту.

Заметим, что операторы перенаправления I/O в операторах print и printf относятся к уровню операторов, а не выражений. Перенаправление не порождает выражений, которые могут быть операндами других операторов. В результате этого не имеет смысла использовать оператор перенаправления около другого оператора с более низким приоритетом, не употребив скобки. Такие комбинации, например, `print foo ? a ? b : c', приводят к синтаксическим ошибкам. Правильный способ написать такой оператор есть `print foo ? (a ? b : c)'.

~ !~ Соответствие, несоответствие.

Компонента массива.

&& Логическое "и".
---- Логическое "или".
?: Условный оператор.

Эти операторы группируются справа налево.

= += -= *= /= %= ^= **=  Присваивания. 

Эти операторы группируются справа
налево. (Оператор `**=' не включен в POSIX.)

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru