Bicep safe-dereference-operator
Operatorn safe-dereference ger ett sätt att komma åt egenskaper för ett objekt eller element i en matris på ett säkert sätt. Det hjälper till att förhindra fel som kan uppstå när du försöker komma åt egenskaper eller element utan att känna till deras existens eller värde.
safe-dereference
<base>.?<property>
<base>[?<index>]
En safe-dereference-operator tillämpar en medlemsåtkomst, .?<property>
, eller elementåtkomst, [?<index>]
, åtgärd på dess operand endast om operanden utvärderas till icke-null. Annars returneras null. Det är
- Om
a
utvärderas tillnull
ärnull
resultatet ava.?x
ellera[?x]
. - Om
a
är ett objekt som inte har enx
egenskap ärnull
deta.?x
. - Om
a
är ett objekt som inte har ett element i indexetx
är deta[?x]
null
- Om
a
är en matris vars längd är mindre än eller lika medx
ärnull
dåa[?x]
. - Om
a
är icke-null och har en egenskap med namnetx
är resultatet ava.?x
detsamma som resultatet ava.x
. - Om
a
är icke-null och har ett element vid indexx
är resultatet ava[?x]
detsamma som resultatet ava[x]
Operatorerna för säker avreferering kortsluter. Om en åtgärd i en kedja med villkorsstyrda medlems- eller elementåtkomståtgärder returnerar null
körs inte resten av kedjan. I följande exempel .?name
utvärderas inte om storageAccountsettings[?i]
utvärderas till 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'
}
}]
Nästa steg
- Om du vill köra exemplen använder du Azure CLI eller Azure PowerShell för att distribuera en Bicep-fil.
- Information om hur du skapar en Bicep-fil finns i Snabbstart: Skapa Bicep-filer med Visual Studio Code.
- Information om hur du löser Bicep-typfel finns i Alla funktioner för Bicep.