Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The logical operators evaluate boolean values, return non-null values, or evaluate a conditional expression. To run the examples, use Azure CLI or Azure PowerShell to deploy a Bicep file.
Operator | Name |
---|---|
&& |
And |
|| |
Or |
! |
Not |
?? |
Coalesce |
? : |
Conditional expression |
And &&
operand1 && operand2
Determines if both values are true.
Operands
Operand | Type | Description |
---|---|---|
operand1 |
boolean | The first value to check if true. |
operand2 |
boolean | The second value to check if true. |
More operands | boolean | More operands can be included. |
Return value
True
when both values are true, otherwise false
is returned.
Example
Evaluates a set of parameter values and a set of expressions.
param operand1 bool = true
param operand2 bool = true
output andResultParm bool = operand1 && operand2
output andResultExp bool = 10 >= 10 && 5 > 2
Output from the example:
Name | Type | Value |
---|---|---|
andResultParm |
boolean | true |
andResultExp |
boolean | true |
To avoid The language expression property 'foo' doesn't exist exception with Bicep objects, you can use the And logical operator as shown in the following example:
param objectToTest object = {
one: 1
two: 2
three: 3
}
output bar bool = contains(objectToTest, 'four') && objectToTest.four == 4
Or ||
operand1 || operand2
Determines if either value is true.
Operands
Operand | Type | Description |
---|---|---|
operand1 |
boolean | The first value to check if true. |
operand2 |
boolean | The second value to check if true. |
More operands | boolean | More operands can be included. |
Return value
True
when either value is true, otherwise false
is returned.
Example
Evaluates a set of parameter values and a set of expressions.
param operand1 bool = true
param operand2 bool = false
output orResultParm bool = operand1 || operand2
output orResultExp bool = 10 >= 10 || 5 < 2
Output from the example:
Name | Type | Value |
---|---|---|
orResultParm |
boolean | true |
orResultExp |
boolean | true |
To avoid The language expression property array index 'x' is out of bounds exception, you can use the Or logical operator as shown in the following example:
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
Negates a boolean value.
Operand
Operand | Type | Description |
---|---|---|
boolValue |
boolean | Boolean value that's negated. |
Return value
Negates the initial value and returns a boolean. If the initial value is true
, then false
is returned.
Example
The not
operator negates a value. The values can be wrapped with parentheses.
param initTrue bool = true
param initFalse bool = false
output startedTrue bool = !(initTrue)
output startedFalse bool = !initFalse
Output from the example:
Name | Type | Value |
---|---|---|
startedTrue |
boolean | false |
startedFalse |
boolean | true |
Coalesce ??
operand1 ?? operand2
Returns first non-null value from operands.
Operands
Operand | Type | Description |
---|---|---|
operand1 |
string, integer, boolean, object, array | Value to test for null . |
operand2 |
string, integer, boolean, object, array | Value to test for null . |
More operands | string, integer, boolean, object, array | Value to test for null . |
Return value
Returns the first non-null value. Empty strings, empty arrays, and empty objects aren't null
and an <empty> value is returned.
Example
The output statements return the non-null values. The output type must match the type in the comparison or an error is generated.
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
Output from the example:
Name | Type | Value |
---|---|---|
nonNullStr |
string | demoString |
nonNullInt |
int | 10 |
nonNullEmpty |
string | <empty> |
Conditional expression ? :
condition ? true-value : false-value
Evaluates a condition and returns a value whether the condition is true or false.
Operands
Operand | Type | Description |
---|---|---|
condition |
boolean | Condition to evaluate as true or false. |
true-value |
string, integer, boolean, object, array | Value when condition is true. |
false-value |
string, integer, boolean, object, array | Value when condition is false. |
Example
This example evaluates a parameter's initial and returns a value whether the condition is true or false.
param initValue bool = true
output outValue string = initValue ? 'true value' : 'false value'
Output from the example:
Name | Type | Value |
---|---|---|
outValue |
string | true value |
Next steps
- To create a Bicep file, see Quickstart: Create Bicep files with Visual Studio Code.
- For information about how to resolve Bicep type errors, see Any function for Bicep.
- To compare syntax for Bicep and JSON, see Comparing JSON and Bicep for templates.
- For examples of Bicep functions, see Bicep functions.