この記事では、Bicep 演算子について説明します。 演算子は、値の計算、値の比較、または条件の評価に使用されます。 Bicep 演算子には、次の 6 種類があります。
演算子の優先順位と結合規則
次の演算子は、優先順位の降順に一覧表示されます (位置が高いほど優先順位が高くなります)。 同じレベルで一覧表示される演算子の優先順位は同じです。
記号 | 演算の種類 | 結合規則 |
---|---|---|
(
)
[
]
.
::
|
かっこ、配列インデクサー、プロパティ アクセサー、入れ子になったリソース アクセサー | 左から右 |
!
-
|
単項演算子 | 右から左 |
%
*
/
|
乗法 | 左から右 |
+
-
|
加法 | 左から右 |
<=
<
>
>=
|
リレーショナル | 左から右 |
==
!=
=~
!~
|
平等 | 左から右 |
&& |
論理積 | 左から右 |
|| |
論理和 | 左から右 |
?? |
合体 | 左から右 |
?
:
|
条件式 (三項) | 右から左 |
かっこ
かっこで囲んだ式を使用すると、既定の Bicep 演算子の優先順位をオーバーライドできます。 たとえば、式 x + y / z
は最初に除算を評価し、次に加算を評価します。 ただし、式 (x + y) / z
は加算 1 番目と除算 2 番目を評価します。
アクセサ
アクセサー演算子は、オブジェクトの入れ子になったリソースとプロパティにアクセスするために使用されます。
オペレーター | 名前 | 説明 |
---|---|---|
[] |
Index アクセサー | オブジェクトの配列またはプロパティの要素にアクセスします。 |
[^index] |
逆引きインデックス アクセサー | 配列の末尾 (末尾から 1 から始まる) からカウントして、インデックスによって配列要素にアクセスします。 |
. |
関数アクセサー | リソースで関数を呼び出します。 |
:: |
入れ子になったリソース アクセサー | 親リソースの外部から入れ子になったリソースにアクセスします。 |
. |
プロパティ アクセサー | オブジェクトのプロパティにアクセスします。 |
比較
比較演算子を使用すると、値が比較され、true
または false
のいずれかが返されます。
オペレーター | 名前 | 説明 |
---|---|---|
>= |
[次の値以上] | 1 番目の値が 2 番目の値以上かどうかを評価します。 |
> |
より大きい | 1 番目の値が 2 番目の値より大きいかどうかを評価します。 |
<= |
[次の値以下] | 1 番目の値が 2 番目の値以下かどうかを評価します。 |
< |
未満 | 1 番目の値が 2 番目の値より小さいかどうかを評価します。 |
== |
[等しい] | 2 つの値が等しいかどうかを評価します。 |
!= |
等しくない | 2 つの値が等しくないかどうかを評価します。 |
=~ |
大文字と小文字の区別を無視し、等しい | 大文字と小文字を区別せずに、2 つの値が等しいかどうかを判断します。 |
!~ |
大文字と小文字の区別を無視し、等しくない | 大文字と小文字の区別を無視して、2 つの値が等 しくない かどうかを判断します。 |
論理
論理演算子は、ブール値の評価、null 以外の値の返し、または条件式の評価を行います。
オペレーター | 名前 | 説明 |
---|---|---|
&& |
そして | すべての値が true の場合 true を返します。 |
|| |
又は | いずれかの値が true の場合、 true を返します。 |
! |
じゃない | ブール値を否定します。 1 つのオペランドを受け取ります。 |
?? |
合体 | 最初の null 以外の値を返します。 |
?
:
|
条件式 | true または false の条件を評価し、値を返します。 |
Null 免除
null 許容演算子は、前の式のすべての null 許容警告を抑制します。
オペレーター | 名前 | 説明 |
---|---|---|
! |
Null forgiving | 前の式に対するすべての null 許容警告を抑制します。 |
数値
数値演算子は整数を使用して計算を行い、整数値を返します。
オペレーター | 名前 | 説明 |
---|---|---|
* |
掛ける | 2 つの整数を乗算します。 |
/ |
除算 | 整数を整数で除算します。 |
% |
モジュロ | 整数を整数で除算し、剰余を返します。 |
+ |
追加 | 2 つの整数を追加します。 |
- |
引く | 別の整数から 1 つの整数を減算します。 2 つのオペランドを受け取ります。 |
- |
マイナス (単項) | 整数に -1 を乗算します。 1 つのオペランドを受け取ります。 |
注
減算と負符号は、同じ演算子を使用します。 減算では 2 つのオペランドを使用し、マイナスは 1 つのオペランドを使用するため、機能は異なります。
Safe-dereference
safe-dereference 演算子は、プロパティまたは要素の存在や値に関する適切な知識なしにアクセスしようとしたときに発生する可能性のあるエラーを防ぐのに役立ちます。
オペレーター | 名前 | 説明 |
---|---|---|
<base>.?<property> 、<base>[?<index>] |
Safe-dereference | オブジェクト メンバー アクセスまたは配列要素のアクセス操作をオペランドに適用するのは、そのオペランドが null 以外に評価された場合にのみ、それ以外の場合は null を返します。 |
スプレッド
スプレッド演算子は、反復可能な配列またはオブジェクトを個々の要素に展開するために使用されます。 スプレッド演算子を使用すると、配列やオブジェクトを簡単に操作できるように、それらの要素やプロパティを新しい配列やオブジェクトに分散させることができます。
オペレーター | 名前 | 説明 |
---|---|---|
... |
まん延 | 個別の要素またはプロパティへの、iterable 配列とオブジェクトの拡張を許可します。 |
次のステップ
- Bicep ファイルの作成方法については、「クイックスタート: Visual Studio Code を使用して Bicep ファイルを作成する」を参照してください。
- Bicep の型のエラーを解決する方法については、「Bicep の any 関数」を参照してください。
- Bicep と JSON の構文を比較するには、「テンプレートにおける JSON と Bicep の比較」を参照してください。
- Bicep 関数の例については、「Bicep 関数」を参照してください。