Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
ase evalúa comonull, el resultado dea.?xoa[?x]esnull. - Si
afuera un objeto sin una propiedadx,a.?xseránull. - Si
aes un objeto que no tiene un elemento en el índicex, esa[?x]null - Si
afuera una matriz con una longitud menor o igual quex,a[?x]seránull. - Si
ano es null y tiene una propiedad denominadax, el resultado dea.?xserá el mismo que el resultado dea.x. - Si
ano 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@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'
}
}]
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.