Operadores lógicos de Bicep

Los operadores lógicos evalúan valores booleanos y expresiones condicionales o devuelven valores no NULL. Para ejecutar los ejemplos, use la CLI de Azure o Azure PowerShell para implementar un archivo de Bicep.

Operator Nombre
&& Y
|| O
! Not
?? Coalesce
? : Expresión condicional

And &&

operand1 && operand2

Determina si ambos valores son verdaderos.

Operandos

Operando Tipo Description
operand1 boolean Primer valor que se comprueba si es verdadero.
operand2 boolean Segundo valor que se comprueba si es verdadero.
Más operandos boolean Se pueden incluir más operandos.

Valor devuelto

True cuando ambos valores son verdaderos; de lo contrario, se devuelve false.

Ejemplo

Evalúa un conjunto de valores de parámetro y un conjunto de expresiones.

param operand1 bool = true
param operand2 bool = true

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

Salida del ejemplo:

Nombre Tipo Value
andResultParm boolean true
andResultExp boolean true

Para evitar que la propiedad de expresión de lenguaje 'foo' no exista con objetos de Bicep, puede usar el operador lógico And como se muestra en el ejemplo siguiente:

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

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

Or ||

operand1 || operand2

Determina si alguno de los valores es verdadero.

Operandos

Operando Tipo Description
operand1 boolean Primer valor que se comprueba si es verdadero.
operand2 boolean Segundo valor que se comprueba si es verdadero.
Más operandos boolean Se pueden incluir más operandos.

Valor devuelto

True cuando alguno de los valores es verdadero; de lo contrario, se devuelve false.

Ejemplo

Evalúa un conjunto de valores de parámetro y un conjunto de expresiones.

param operand1 bool = true
param operand2 bool = false

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

Salida del ejemplo:

Nombre Tipo Value
orResultParm boolean true
orResultExp boolean true

Para evitar la excepción La expresión de lenguaje propiedad array índice 'x' está fuera de los límites, puede utilizar el operador lógico Or como se muestra en el siguiente ejemplo:

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

Not !

!boolValue

Niega un valor booleano.

Operando

Operando Tipo Description
boolValue boolean Valor booleano que se niega.

Valor devuelto

Niega el valor inicial y devuelve un valor booleano. Si el valor inicial es true, se devuelve false.

Ejemplo

El operador not niega un valor. Los valores se pueden incluir entre paréntesis.

param initTrue bool = true
param initFalse bool = false

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

Salida del ejemplo:

Nombre Tipo Value
startedTrue boolean false
startedFalse boolean true

Coalesce ??

operand1 ?? operand2

Devuelve el primer valor no nulo de los operandos.

Operandos

Operando Tipo Descripción
operand1 string, integer, boolean, object, array Valor que se va a probar para null.
operand2 string, integer, boolean, object, array Valor que se va a probar para null.
Más operandos string, integer, boolean, object, array Valor que se va a probar para null.

Valor devuelto

Devuelve el primer valor no NULL. Las cadenas, matrices y objetos vacíos no son null y se devuelve un valor <vacío>.

Ejemplo

Las instrucciones de salida devuelven los valores no NULL. El tipo de salida debe coincidir con el tipo de la comparación o se genera un error.

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

Salida del ejemplo:

Nombre Tipo Value
nonNullStr string demoString
nonNullInt int 10
nonNullEmpty string <empty>

Expresión condicional ? :

condition ? true-value : false-value

Evalúa una condición y devuelve un valor si la condición es verdadera o falsa.

Operandos

Operando Tipo Description
condition boolean Condición que se debe evaluar como verdadera o falsa.
true-value string, integer, boolean, object, array Valor cuando la condición es verdadera.
false-value string, integer, boolean, object, array Valor cuando la condición es falsa.

Ejemplo

En este ejemplo se evalúa la inicial de un parámetro y se devuelve un valor si la condición es verdadera o falsa.

param initValue bool = true

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

Salida del ejemplo:

Nombre Tipo Value
outValue string true value

Pasos siguientes