Operator dereferensi aman Bicep
Operator dereferensi aman menyediakan cara untuk mengakses properti objek atau elemen array dengan cara yang aman. Ini membantu mencegah kesalahan yang dapat terjadi ketika mencoba mengakses properti atau elemen tanpa pengetahuan yang tepat tentang keberadaan atau nilainya.
dereferensi aman
<base>.?<property>
<base>[?<index>]
Operator dereferensi aman menerapkan akses anggota, .?<property>
, atau akses elemen, [?<index>]
, operasi ke operand-nya hanya jika operand tersebut mengevaluasi ke non-null; jika tidak, itu mengembalikan null. Yaitu,
- Jika
a
mengevaluasi kenull
, hasil daria.?x
ataua[?x]
adalahnull
. - Jika
a
adalah objek yang tidak memilikix
properti, makaa.?x
adalahnull
. - Jika
a
adalah array yang panjangnya kurang dari atau sama denganx
, makaa[?x]
adalahnull
. - Jika
a
non-null dan memiliki properti bernamax
, hasilnyaa.?x
sama dengan hasil .a.x
- Jika
a
non-null dan memiliki elemen pada indeksx
, hasilnyaa[?x]
sama dengan hasila[x]
Operator dereferensi aman mengalami sirkuit pendek. Artinya, jika satu operasi dalam rantai anggota kondisional atau operasi akses elemen mengembalikan null
, sisa rantai tidak dijalankan. Dalam contoh berikut, .?name
tidak dievaluasi jika storageAccountsettings[?i]
dievaluasi ke null
:
param storageAccountSettings array = []
param storageCount int
param location string = resourceGroup().location
resource storage 'Microsoft.Storage/storageAccounts@2022-09-01' = [for i in range(0, storageCount): {
name: storageAccountSettings[?i].?name ?? 'defaultname'
location: storageAccountSettings[?i].?location ?? location
kind: storageAccountSettings[?i].?kind ?? 'StorageV2'
sku: {
name: storageAccountSettings[?i].?sku ?? 'Standard_GRS'
}
}]
Langkah berikutnya
- Untuk menjalankan contoh, gunakan Azure CLI atau Azure PowerShell untuk menyebarkan file Bicep.
- Untuk membuat file Bicep, lihat Mulai cepat: Membuat file Bicep dengan Visual Studio Code.
- Untuk informasi tentang cara mengatasi kesalahan jenis Bicep, lihat Fungsi untuk Bicep.