Bicep 運算子

本文描述 Bicep 運算子。 運算子用於計算值、比較值或評估條件。 Bicep 運算子有六種類型:

運算子優先順序和關聯性

下列運算子以遞減順序列出 (位置愈高優先順序愈高)。 同層級的運算子優先順序相同。

符號 運算類型 關聯性
( ) [ ] . :: 括弧、陣列索引子、屬性存取子和巢狀資源存取子 由左至右
! - 一元 由右至左
% * / 乘法 由左至右
+ - 加法 由左至右
<= < > >= 關聯式 由左至右
== != =~ !~ 等式 由左至右
&& 邏輯 AND 由左至右
|| 邏輯 OR 由左至右
?? Coalesce 由左至右
? : 條件運算式 (三元) 由右至左

括號

括弧之間的運算式可讓您覆寫預設的 Bicep 運算子優先順序。 例如:運算式 x + y / z 會先評估除法,接著是加法。 但運算式 (x + y) / z 則先評估加法,再評估除法。

存取子

存取子運算子用於存取物件的巢狀資源和屬性。

運算子 名稱 描述
[] 索引存取子 存取物件的陣列或屬性元素。
. 函式存取子 呼叫資源的函式。
:: 巢狀資源存取子 存取父資源外部的巢狀資源。
. 屬性存取子 存取物件的屬性。

比較

比較運算子會比較值,並傳回 truefalse

運算子 名稱 描述
>= 大於或等於 評估第一個值是否大於或等於第二個值。
> 大於 評估第一個值是否大於第二個值。
<= 小於或等於 評估第一個值是否小於或等於第二個值。
< 小於 評估第一個值是否小於第二個值。
== 等於 評估兩個值是否相等。
!= 不等於 評估兩個值是否相等。
=~ 等於不區分大小寫 忽略大小寫,以判斷兩個值是否相等。
!~ 不等於不區分大小寫 忽略大小寫,以判斷兩個值是否相等。

邏輯

邏輯運算子可評估布林值、傳回非 Null 值,或評估條件運算式。

運算子 名稱 描述
&& And 若所有值皆為 true,則傳回 true
|| Or 若任一值為 true,則傳回 true
! Not 否定布林值。 使用一個運算元。
?? Coalesce 傳回第一個非 Null 值。
? : 條件運算式 評估條件為 true 或 false,並傳回值。

Null-forgiving

Null-forgiving 運算子會隱藏先前運算式的所有可為 Null 警告。

運算子 名稱 描述
! Null-forgiving 隱藏先前運算式的所有可為 Null 警告。

數值

數值運算子使用整數執行計算,並傳回整數值。

運算子 名稱 描述
* 乘積 兩個整數相乘。
/ 分割 整數除以整數。
% 模數 整數除以整數,並傳回餘數。
+ 加入 兩個整數相加。
- 差集 將整數減去另一個整數。 使用兩個運算元。
- 減號 (一元) -1 乘以整數。 使用一個運算元。

注意

減法和減號使用相同運算子。 功能上有所不同:減法使用兩個運算元,減號則僅使用一個運算元。

Safe-dereference

safe-dereference 運算子有助於在嘗試存取不曉得其存在或值的屬性或元素時,防止可能的錯誤發生。

運算子 名稱 描述
<base>.?<property>, <base>[?<index>] Safe-dereference 在其運算元評估為非 Null 時,才會允許對該運算元進行物件成員存取或陣列元素存取;若非如此,會傳回 null

下一步