Оператор Bicep safe-dereference
Оператор безопасной расшифровки предоставляет способ доступа к свойствам объекта или элементов массива в безопасном режиме. Это помогает предотвратить ошибки, которые могут возникать при попытке доступа к свойствам или элементам без надлежащего знания о их существовании или значении.
безопасное разыменовывание
<base>.?<property>
<base>[?<index>]
Оператор безопасной расшифровки применяет доступ к члену или .?<property>
доступ к элементу, [?<index>]
операцию к операнду только в том случае, если операнд оценивается как ненулевое; в противном случае возвращает значение 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@2023-04-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.