Bicep-operator voor veilige deductie
De operator voor veilige deductie biedt een manier om op een veilige manier toegang te krijgen tot eigenschappen van een object of elementen van een matrix. Het helpt fouten te voorkomen die kunnen optreden bij het openen van eigenschappen of elementen zonder de juiste kennis van hun bestaan of waarde.
veilige deductie
<base>.?<property>
<base>[?<index>]
Een operator voor veilige deductie past een lidtoegang, .?<property>
of elementtoegang, [?<index>]
alleen toe op de operand als die operand niet-null evalueert; anders retourneert deze null. Anders wordt null geretourneerd. Dat wil zeggen
- Als
a
dit wordt geëvalueerdnull
, is het resultaat vana.?x
ofa[?x]
isnull
het . - Als
a
dit een object is dat geen eigenschap heeftx
, isnull
data.?x
. - Als
a
het een object is dat geen element bij de indexx
heeft, is data[?x]
null
- Als
a
het een matrix is waarvan de lengte kleiner is dan of gelijk is aanx
, isnull
data[?x]
. - Als
a
dit niet null is en een eigenschap heeft met de naamx
, is het resultaata.?x
hetzelfde als het resultaat vana.x
. - Als
a
niet null is en een element bij de indexx
heeft, is het resultaata[?x]
hetzelfde als het resultaat vana[x]
De operatoren voor veilige deductie zijn kortsluiting. Als één bewerking in een keten van voorwaardelijke lid- of elementtoegangsbewerkingen retourneert null
, wordt de rest van de keten niet uitgevoerd. In het volgende voorbeeld .?name
wordt niet geëvalueerd als storageAccountsettings[?i]
dit wordt geëvalueerd: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'
}
}]
Volgende stappen
- Als u de voorbeelden wilt uitvoeren, gebruikt u Azure CLI of Azure PowerShell om een Bicep-bestand te implementeren.
- Zie quickstart: Bicep-bestanden maken met Visual Studio Code om een Bicep-bestand te maken.
- Zie Elke functie voor Bicep voor Bicep-type voor informatie over het oplossen van bicep-fouten.