Поделиться через


Логические операторы Bicep

Логические операторы оценивают логические значения, возвращают значения, отличные от NULL, или вычисляют условное выражение. В этих примерах используйте для развертывания файла Bicep Azure CLI или Azure PowerShell.

Оператор Имя.
&& And
|| Or
! Not
?? Coalesce
? : Условное выражение

И &&

operand1 && operand2

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

Операнды

Операнд Тип Описание
operand1 boolean Первое значение для проверки на истинность.
operand2 boolean Второе значение для проверки на истинность.
Дополнительные операнды boolean Можно добавить больше операндов.

Возвращаемое значение

True, если оба операнда имеют значение true, в противном случае возвращается false.

Пример

Оценивается набор значений параметров и набор выражений.

param operand1 bool = true
param operand2 bool = true

output andResultParm bool = operand1 && operand2
output andResultExp bool = 10 >= 10 && 5 > 2

Выходные данные примера

Имя. Тип значение
andResultParm boolean true
andResultExp boolean true

Чтобы избежать исключения свойства выражения языка "foo" не существует с объектами Bicep, можно использовать логический оператор And, как показано в следующем примере:

param objectToTest object = {
  one: 1
  two: 2
  three: 3
}

output bar bool = contains(objectToTest, 'four') && objectToTest.four == 4

Или ||

operand1 || operand2

Определяет, является ли какое-либо из значений истинным.

Операнды

Операнд Тип Описание
operand1 boolean Первое значение для проверки на истинность.
operand2 boolean Второе значение для проверки на истинность.
Дополнительные операнды boolean Можно добавить больше операндов.

Возвращаемое значение

True, если какой-либо из операндов имеет значение true, в противном случае возвращается false.

Пример

Оценивается набор значений параметров и набор выражений.

param operand1 bool = true
param operand2 bool = false

output orResultParm bool = operand1 || operand2
output orResultExp bool = 10 >= 10 || 5 < 2

Выходные данные примера

Имя. Тип значение
orResultParm boolean true
orResultExp boolean true

Чтобы избежать исключения индекса массива свойств выражения языка x , можно использовать логический оператор Or, как показано в следующем примере:

param emptyArray array = []
param numberArray array = [1, 2, 3]

output foo bool = empty(emptyArray) || emptyArray[0] == 'bar'
output bar bool = length(numberArray) >= 3 || numberArray[3] == 4

Не !

!boolValue

Инвертирует логическое значение.

Операнд

Операнд Тип Описание
boolValue boolean Противоположное логическое значение.

Возвращаемое значение

Инвертирует начальное значение и возвращает логическое значение. Если исходное значение равно true, то возвращается false.

Пример

Оператор not инвертирует значение. Операнды можно заключать в круглые скобки.

param initTrue bool = true
param initFalse bool = false

output startedTrue bool = !(initTrue)
output startedFalse bool = !initFalse

Выходные данные примера

Имя. Тип значение
startedTrue boolean false
startedFalse boolean true

Объединение ??

operand1 ?? operand2

Возвращает первый операнд, отличный от null.

Операнды

Операнд Тип Описание
operand1 строка, целое число, логическое значение, объект, массив Значение, проверяемое на null.
operand2 строка, целое число, логическое значение, объект, массив Значение, проверяемое на null.
Дополнительные операнды строка, целое число, логическое значение, объект, массив Значение, проверяемое на null.

Возвращаемое значение

Возвращает первое значение, отличное от NULL. Пустые строки, пустые массивы и пустые объекты не равны null, поэтому возвращается <пустое> значение.

Пример

Выходные операторы возвращают значения, отличные от null. Тип выходных данных должен соответствовать типу в сравнении, иначе произойдет ошибка.

param myObject object = {
  isnull1: null
  isnull2: null
  string: 'demoString'
  emptystr: ''
  integer: 10
  }

output nonNullStr string = myObject.isnull1 ?? myObject.string ?? myObject.isnull2
output nonNullInt int = myObject.isnull1 ?? myObject.integer ?? myObject.isnull2
output nonNullEmpty string = myObject.isnull1 ?? myObject.emptystr ?? myObject.string ?? myObject.isnull2

Выходные данные примера

Имя. Тип значение
nonNullStr строка demoString
nonNullInt INT 10
nonNullEmpty строка <empty>

Условное выражение ? :

condition ? true-value : false-value

Проверяет условие и возвращает значение в зависимости от его истинности или ложности.

Операнды

Операнд Тип Описание
condition boolean Условие для проверки на истинность или ложность.
true-value строка, целое число, логическое значение, объект, массив Значение, если условие истинно.
false-value строка, целое число, логическое значение, объект, массив Значение, если условие ложно.

Пример

В этом примере вычисляется начальное значение параметра и возвращается значение, указывающее, имеет ли условие значение true или false.

param initValue bool = true

output outValue string = initValue ? 'true value' : 'false value'

Выходные данные примера

Имя. Тип значение
outValue строка значение true

Следующие шаги