Opérateur de déréférencement sécurisé Bicep
L’opérateur de déréférencement sécurisé facilite l’accès aux propriétés d’un objet ou d’éléments d’un tableau de manière sécurisée. Il permet d’éviter les erreurs pouvant survenir lors d’une tentative d’accès à des propriétés ou à des éléments sans connaissance précise de leur existence ou de leur valeur.
déréférencement sécurisé
<base>.?<property>
<base>[?<index>]
Un opérateur de déréférencement sécurisé applique une opération d’accès à un membre, .?<property>
, ou d’accès à un élément, [?<index>]
, à son opérande que si celui-ci a une valeur non nulle ; sinon, il retourne une valeur nulle. Plus précisément :
- Si
a
renvoie la valeurnull
, le résultat dea.?x
oua[?x]
estnull
. - Si
a
est un objet qui n’a pas de propriétéx
,a.?x
est alorsnull
. - S’il
a
s’agit d’un objet qui n’a pas d’élément à l’indexx
,a[?x]
il estnull
- Si
a
est un tableau dont la longueur est inférieure ou égale àx
,a[?x]
est alorsnull
. - Si
a
a une valeur non nulle et une propriété nomméex
, le résultat dea.?x
est identique au résultat dea.x
. - Si
a
a une valeur non nulle et un élément à l’indexx
, le résultat dea[?x]
est identique au résultat dea[x]
Les opérateurs de déréférencement sécurisé ont un effet de court-circuit. Autrement dit, si une opération dans une chaîne d’opérations d’accès au membre ou à l’élément conditionnelles retourne une valeur null
, le reste de la chaîne ne s’exécute pas. Dans l’exemple suivant, .?name
n’est pas évalué si storageAccountsettings[?i]
renvoie la valeur 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'
}
}]
Étapes suivantes
- Pour exécuter les exemples, utilisez Azure CLI ou Azure PowerShell afin de déployer un fichier Bicep.
- Pour créer un fichier Bicep, consultez Démarrage rapide : Créer des fichiers Bicep avec Visual Studio Code.
- Pour plus d’informations sur la résolution des erreurs de type Bicep, consultez Fonction any pour Bicep.