П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

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

MySQL

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

Хостинг

Другое







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

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

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

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

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

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

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

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

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

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

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

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



 
 



Руководство пользователя для 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-2011 Project.Net.Ru


Выбирай. Более симпатичный интернет магазин ноутбуков . Интернет магазин Новогиреево.