Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Оператор безопасной расшифровки предоставляет способ доступа к свойствам объекта или элементов массива в безопасном режиме. Это помогает предотвратить ошибки, которые могут возникать при попытке доступа к свойствам или элементам без надлежащего знания о их существовании или значении.
безопасное разыменовывание
<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массив, длина которого меньше или равна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@2025-06-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.