Операторы Bicep

В этой статье описаны операторы Bicep. Операторы используются для вычисления значений, сравнения значений или вычисления условий. Существует шесть типов операторов Bicep:

Приоритет и ассоциативность операторов

Приведенные ниже операторы перечислены в порядке убывания приоритета (чем выше приоритет, тем выше позиция). Операторы, указанные на одном уровне, имеют одинаковый приоритет.

Символ Тип операции Ассоциативность
( ) [ ] . :: Круглые скобки, индексаторы массивов, методы доступа к свойствам и метод доступа к вложенным ресурсам Слева направо
! - Унарный Справа налево
% * / Мультипликативный Слева направо
+ - Аддитивный Слева направо
<= < > >= Реляционный Слева направо
== != =~ !~ Равенство Слева направо
&& Логическое И Слева направо
|| Логическое ИЛИ Слева направо
?? Coalesce Слева направо
? : Условное выражение (тернарное) Справа налево

Круглые скобки

Заключение выражения в круглые скобки позволяет переопределить приоритет оператора Bicep по умолчанию. Например, выражение x + y / z выполняет сначала деление, а затем сложение. Однако выражение (x + y) / z сначала выполняет сложение, а затем деление.

Метод доступа

Операторы метода доступа используются для доступа к вложенным ресурсам и свойствам объектов.

Оператор Имя Описание
[] Метод доступа к индексу Доступ к элементу массива или свойству объекта.
. Метод доступа к функции Вызов функции для ресурса.
:: Метод доступа к вложенному ресурсу Доступ к вложенному ресурсу осуществляется из-за пределов родительского ресурса.
. Метод доступа к свойству Доступ к свойству объекта.

Сравнение

Операторы сравнения сравнивают значения и возвращают либо true, либо false.

Оператор Имя Описание
>= Больше или равно Сравнивает, больше ли первое значение второго значения или равно ему.
> Больше чем Сравнивает, больше ли первое значение второго значения.
<= Меньше или равно Сравнивает, меньше ли первое значение второго значения или равно ему.
< Меньше Сравнивает, меньше ли первое значение второго значения.
== Равно Сравнивает, равны ли два значения.
!= Не равно Сравнивает, не равны ли два значения.
=~ Равно без учета регистра Игнорирует регистр, чтобы определить, равны ли два значения.
!~ Не равно без учета регистра Игнорирует регистр, чтобы определить, не равны ли два значения.

Логические

Логические операторы оценивают логические значения, возвращают значения, отличные от NULL, или вычисляют условное выражение.

Оператор Имя Описание
&& And Возвращает true, если все значения являются истинными.
|| Or Возвращает true, если любое из значений является истинным.
! Not Инвертирует логическое значение. Принимает один операнд.
?? Coalesce Возвращает первое значение, отличное от NULL.
? : Условное выражение Вычисляет условие для истинности или ложности и возвращает значение.

Прощающий значение NULL

Оператор, допускающий значение NULL, подавляет все предупреждения, допускающие значение NULL, для предыдущего выражения.

Оператор Имя Описание
! Прощающий значение NULL Подавляет все предупреждения, допускающие значение NULL, для предыдущего выражения.

Числовой

Числовые операторы используют целые числа для вычисления и возвращают целочисленные значения.

Оператор Имя Описание
* Multiply Умножение двух целых чисел.
/ Divide Деление целого числа на целое число.
% Modulo Деление целого числа на целое число и возврат остатка.
+ Добавление Сложение двух целых чисел.
- Subtract Вычитает одно целое число из другого. Принимает два операнда.
- Минус (унарный) Умножение целого числа на -1. Принимает один операнд.

Примечание

Для Subtract и Minus используется один и тот же оператор. Функциональность отличается, поскольку функция Subtract использует два операнда, а Minus использует только один операнд.

Безопасное разыменовывание

Оператор безопасного разыменования помогает предотвратить ошибки, которые могут возникнуть при попытке доступа к свойствам или элементам без надлежащего знания об их существовании или значении.

Оператор Имя Описание
<base>.?<property>, <base>[?<index>] Безопасное разыменовывание Применяет доступ к элементу объекта или операции доступа к элементу массива к операнду только в том случае, если этот операнд имеет значение, отличное от NULL. В противном случае возвращается nullзначение .

Дальнейшие действия