Оператор безопасного разыменования Bicep
Оператор безопасного разыменования предоставляет безопасный способ доступа к свойствам объекта или элементов массива. Это помогает предотвратить ошибки, которые могут возникнуть при попытке доступа к свойствам или элементам без надлежащего знания об их существовании или значении.
безопасное разыменовывание
<base>.?<property>
<base>[?<index>]
Оператор безопасного разыменования применяет операцию доступа к .?<property>
элементам , или доступ к элементу , [?<index>]
к своему операнду только в том случае, если этот операнд имеет значение, отличное от NULL; в противном случае возвращается значение NULL. Это означает следующее:
- Если
a
вычисляется какnull
, то результатомa.?x
илиa[?x]
являетсяnull
. - Если
a
является объектом, который не имеетx
свойства , тоa.?x
имеет значениеnull
. - Если
a
является массивом, длина которого меньше или равнаx
, тоa[?x]
имеет значениеnull
. - Если
a
имеет значение, отличное от NULL, и имеет свойство с именемx
, результатa.?x
будет таким же, как и результат .a.x
- Если
a
имеет значение, отличное от NULL, и имеет элемент в индексеx
, результатa[?x]
будет таким же, как и результатa[x]
Операторы безопасного разыменования являются короткими замыканиями. То есть, если в цепочке операций условного доступа к элементу или члену одна из операций возвращает значение null
, остальная цепочка не выполняется. В следующем примере не вычисляется, .?name
если storageAccountsettings[?i]
имеет значение 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'
}
}]
Дальнейшие действия
- В этих примерах используйте для развертывания файла Bicep Azure CLI или Azure PowerShell.
- Сведения о создании файла Bicep см. в разделе Краткое руководство. Создание файлов Bicep с помощью Visual Studio Code.
- Дополнительные сведения об устранении ошибок типа Bicep см. в разделе Функция any для Bicep.