Bicep 逻辑运算符
逻辑运算符用于计算布尔值,返回非 NULL 值,或计算条件表达式。 若要运行示例,请使用 Azure CLI 或 Azure PowerShell 来部署 Bicep 文件。
运算符 | 名称 |
---|---|
&& |
And |
|| |
Or |
! |
Not |
?? |
Coalesce |
? : |
条件表达式 |
与 &&
operand1 && operand2
确定两个值是否都为 true。
操作数
操作数 | 类型 | 说明 |
---|---|---|
operand1 |
boolean | 要检查是否为 true 的第一个值。 |
operand2 |
boolean | 要检查是否为 true 的第二个值。 |
更多操作数 | 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 | 是 |
andResultExp |
boolean | 是 |
若要避免 Bicep 对象出现“语言表达式属性 'foo' 不存在”异常,可以使用 And 逻辑运算符,如以下示例所示:
param objectToTest object = {
one: 1
two: 2
three: 3
}
output bar bool = contains(objectToTest, 'four') && objectToTest.four == 4
或 ||
operand1 || operand2
确定是否有一个值为 true。
操作数
操作数 | 类型 | 说明 |
---|---|---|
operand1 |
boolean | 要检查是否为 true 的第一个值。 |
operand2 |
boolean | 要检查是否为 true 的第二个值。 |
更多操作数 | 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 | 是 |
orResultExp |
boolean | 是 |
若要避免出现“语言表达式属性数组索引 '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 | 是 |
Coalesce ??
operand1 ?? operand2
从操作数返回第一个非 NULL 值。
操作数
操作数 | 类型 | 说明 |
---|---|---|
operand1 |
字符串、整数、布尔值、对象、数组 | 检测是否为 null 的值。 |
operand2 |
字符串、整数、布尔值、对象、数组 | 检测是否为 null 的值。 |
更多操作数 | 字符串、整数、布尔值、对象、数组 | 检测是否为 null 的值。 |
返回值
返回第一个非 NULL 值。 空字符串、空数组和空对象不是 null
,并且会返回 <empty> 值。
示例
输出语句返回非 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 |
string | <empty> |
条件表达式 ? 解码的字符:
condition ? true-value : false-value
计算条件并返回一个值,指示条件为 true 还是 false。
操作数
操作数 | 类型 | 说明 |
---|---|---|
condition |
boolean | 计算结果为 true 或 false 的条件。 |
true-value |
字符串、整数、布尔值、对象、数组 | 条件为 true 时的值。 |
false-value |
字符串、整数、布尔值、对象、数组 | 条件为 false 时的值。 |
示例
此示例计算参数的初始值,并返回一个指示条件为 true 或 false 的值。
param initValue bool = true
output outValue string = initValue ? 'true value' : 'false value'
示例输出:
名称 | 类型 | 值 |
---|---|---|
outValue |
字符串 | true 值 |
后续步骤
- 若要创建 Bicep 文件,请参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件。
- 有关如何解决 Bicep 类型错误的信息,请参阅 Bicep 的 Any 函数。
- 若要比较 Bicep 和 JSON 的语法,请参阅比较模板的 JSON 和 Bicep。
- 有关 Bicep 函数的示例,请参阅 Bicep 函数。