Operador de desreferencia segura de Bicep
El operador de desreferencia segura proporciona una manera de acceder a las propiedades de un objeto o elementos de una matriz de forma segura. El operador de desreferencia segura ayuda a evitar errores que pudieran producirse al intentar acceder a propiedades o elementos sin saber adecuadamente de su existencia o valor.
desreferencia segura
<base>.?<property>
<base>[?<index>]
Un operador de desreferencia segura aplica un acceso a miembros, .?<property>
, o el acceso a elementos, [?<index>]
, operación a su operando solo si ese operando se evalúa como no NULL; de lo contrario, devuelve NULL. Es decir:
- Si
a
se evalúa comonull
, el resultado dea.?x
oa[?x]
esnull
. - Si
a
fuera un objeto sin una propiedadx
,a.?x
seránull
. - Si
a
fuera una matriz con una longitud menor o igual quex
,a[?x]
seránull
. - Si
a
no es null y tiene una propiedad denominadax
, el resultado dea.?x
será el mismo que el resultado dea.x
. - Si
a
no es null y tiene un elemento en el índicex
, el resultado dea[?x]
será el mismo que el resultado dea[x]
Los operadores de desreferencia segura son cortocircuitantes. Es decir, si una operación en una cadena de la operación de acceso a elementos o miembros condicional devuelve null
, no se ejecuta el resto de la cadena. En el ejemplo siguiente, .?name
no se evalúa si storageAccountsettings[?i]
evalúa a 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'
}
}]
Pasos siguientes
- Si desea ejecutar los ejemplos, use la CLI de Azure o Azure PowerShell para implementar un archivo de Bicep.
- Para crear un archivo de Bicep, consulte Inicio rápido: Creación de plantillas de archivos de Bicep con Visual Studio Code.
- Para obtener información sobre cómo resolver errores de tipos de Bicep, consulte Función any para Bicep.