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
- Para crear un archivo de Bicep, consulte Inicio rápido: Creación de plantillas de archivos de Bicep con Visual Studio Code.
- Para obtener información sobre cómo resolver errores de tipos de Bicep, consulte Función any para Bicep.
- Para comparar la sintaxis de Bicep y JSON, consulte Comparación de JSON y Bicep para plantillas.
- Para ejemplos de funciones de Bicep, consulte Funciones de Bicep.