Operatore bicep safe-dereference
L'operatore safe-dereference consente di accedere alle proprietà di un oggetto o di elementi di una matrice in modo sicuro. Consente di evitare errori che possono verificarsi quando si tenta di accedere a proprietà o elementi senza conoscere correttamente la loro esistenza o valore.
safe-dereference (dereferenziazione sicura)
<base>.?<property>
<base>[?<index>]
Un operatore safe-dereference applica un accesso ai membri, .?<property>
, o un accesso agli elementi, [?<index>]
, al relativo operando solo se l'operando restituisce un valore diverso da Null; in caso contrario, restituisce Null. Ovvero,
- Se
a
restituiscenull
, il risultato dia.?x
oa[?x]
ènull
. - Se
a
è un oggetto che non ha una proprietàx
, quindia.?x
ènull
. - Se
a
è una matrice la cui lunghezza è minore o uguale ax
, quindia[?x]
ènull
. - Se
a
è diverso da null e ha una proprietà denominatax
, il risultato dia.?x
è uguale al risultato dia.x
. - Se
a
è diverso da null e ha un elemento all'indicex
, il risultato dia[?x]
è uguale al risultato dia[x]
Gli operatori safe-dereference sono a corto circuito. Vale a dire, se un'operazione in una catena di operazioni condizionali di accesso a un membro o a un elemento restituisce null
, l'esecuzione delle altre operazioni della catena viene interrotta. Nell’esempio seguente .?name
non viene valutato se storageAccountsettings[?i]
restituisce 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'
}
}]
Passaggi successivi
- Per eseguire gli esempi, usare l'interfaccia della riga di comando di Azure o Azure PowerShell per distribuire un file Bicep.
- Per creare un file Bicep, vedere Avvio rapido: Creare file Bicep con Visual Studio Code.
- Per informazioni su come risolvere gli errori di tipo Bicep, vedere Qualsiasi funzione per Bicep.