Bicep 运算符
本文介绍 Bicep 运算符。 运算符用于计算值,比较值或计算条件。 Bicep 运算符包括六种类型:
运算符优先级和关联性
下面的运算符按优先级降序列出(位置越靠近顶部,优先级越高)。 同一层上列出的运算符具有相等的优先级。
符号 | 运算类型 | 结合性 |
---|---|---|
( ) [ ] . :: |
括号、数组索引器、属性访问器和嵌套资源访问器 | 从左到右 |
! - |
一元 | 从右到左 |
% * / |
乘法 | 从左到右 |
+ - |
加法 | 从左到右 |
<= < > >= |
关系 | 从左到右 |
== != =~ !~ |
相等 | 从左到右 |
&& |
逻辑与 | 从左到右 |
|| |
逻辑或 | 从左到右 |
?? |
Coalesce | 从左到右 |
? : |
条件表达式(三元) | 从右到左 |
括号
将表达式用括号括住可替代默认 Bicep 运算符优先级。 例如,表达式 x + y / z
先计算除法,然后计算加法。 但是,表达式 (x + y) / z
则首先计算加法,然后计算除法。
访问器
访问器运算符用于访问对象上的嵌套资源和属性。
运算符 | 名称 | 说明 |
---|---|---|
[] |
索引访问器 | 访问对象上的数组或属性的元素。 |
. |
函数访问器 | 在资源上调用函数。 |
:: |
嵌套资源访问器 | 从父资源外部访问嵌套资源。 |
. |
属性访问器。 | 访问对象的属性。 |
比较
比较运算符用于比较值并返回 true
或 false
。
运算符 | 名称 | 说明 |
---|---|---|
>= |
大于或等于 | 计算第一个值是否大于或等于第二个值。 |
> |
大于 | 计算第一个值是否大于第二个值。 |
<= |
小于或等于 | 计算第一个值是否小于或等于第二个值。 |
< |
小于 | 计算第一个值是否小于第二个值。 |
== |
等于 | 计算两个值是否相等。 |
!= |
不等于 | 计算两个值是否“不”相等。 |
=~ |
等于且不区分大小写 | 忽略大小写以确定两个值是否相等。 |
!~ |
不等于且不区分大小写 | 忽略大小写以确定两个值是否“不”相等。 |
逻辑
逻辑运算符用于计算布尔值,返回非 NULL 值,或计算条件表达式。
运算符 | 名称 | 描述 |
---|---|---|
&& |
And | 如果所有值为 true,则返回 true 。 |
|| |
Or | 确定任一值为 true,则返回 true 。 |
! |
Not | 对布尔值求反。 采用一个操作数。 |
?? |
Coalesce | 返回第一个非 NULL 值。 |
? : |
条件表达式 | 计算条件的结果为 true 还是 false,并返回值。 |
Null 包容
Null 包容运算符可取消前面表达式的所有可为 null 的警告。
运算符 | 名称 | 说明 |
---|---|---|
! |
Null 包容 | 取消前面表达式的所有可为 null 警告。 |
Numeric
数值运算符使用整数进行计算并返回整数值。
运算符 | 名称 | 说明 |
---|---|---|
* |
乘 | 两个整数相乘。 |
/ |
除 | 两个整数相除。 |
% |
取模 | 两个整数相除并返回余数。 |
+ |
添加 | 两个整数相加。 |
- |
减 | 从一个整数中减去另一个整数。 采用两个操作数。 |
- |
Minus (unary) | 将一个整数乘以 -1 。 采用一个操作数。 |
注意
减法和一元减法运算使用同一个运算符。 但功能不同,减法使用两个操作数,而一元减法只使用一个操作数。
Safe-dereference
safe-dereference 运算符有助于防止在不了解其存在或值的情况下尝试访问属性或元素时可能发生的错误。
运算符 | 名称 | 说明 |
---|---|---|
<base>.?<property> 、<base>[?<index>] |
Safe-dereference | 仅当操作数的计算结果为非 null 时,才对其操作数应用对象成员访问或数组元素访问操作,否则,它会返回 null 。 |
Spread
展开运算符用于将可迭代数组或对象展开为单个元素。 使用展开运算符,你可以通过将数组或对象的元素或属性展开为新的数组或对象来轻松操作数组或对象。
操作员 | 名称 | 描述 |
---|---|---|
... |
Spread | 用于将可迭代数组和对象展开为单个元素或属性。 |
后续步骤
- 若要创建 Bicep 文件,请参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件。
- 有关如何解决 Bicep 类型错误的信息,请参阅 Bicep 的 Any 函数。
- 若要比较 Bicep 和 JSON 的语法,请参阅比较模板的 JSON 和 Bicep。
- 有关 Bicep 函数的示例,请参阅 Bicep 函数。