Bicep safe-dereference-Operator
Der safe-dereference-Operator ermöglicht den sicheren Zugriff auf die Eigenschaften eines Objekts oder auf die Elemente in einem Array. Mithilfe dieses Operators können Fehler vermieden werden, wenn versucht wird, auf Eigenschaften oder Elemente zuzugreifen, wenn deren Existenz oder Wert nicht genau bekannt ist.
safe-dereference
<base>.?<property>
<base>[?<index>]
Ein safe-dereference-Operator wendet nur dann eine Operation mit Memberzugriff (.?<property>
) oder Elementzugriff ([?<index>]
) auf seinen Operanden an, wenn dieser Operand mit ungleich NULL ausgewertet wird. Andernfalls gibt er NULL zurück. Dies bedeutet:
- Wenn
a
alsnull
ausgewertet wird, ist das Ergebnis vona.?x
odera[?x]
null
. - Wenn
a
ein Objekt ist, das keinex
-Eigenschaft hat, dann gilt:a.?x
istnull
. - Wenn
a
ein Array ist, dessen Länge kleiner oder gleichx
ist, dann gilt:a[?x]
istnull
. - Wenn
a
ungleich NULL ist und über eine Eigenschaft namensx
verfügt, entspricht das Ergebnis vona.?x
dem Ergebnis vona.x
. - Wenn
a
ungleich NULL ist und über ein Element beim Indexx
verfügt, entspricht das Ergebnis vona[?x]
dem Ergebnis vona[x]
.
Die safe-dereference-Operatoren sind Kurzschlussoperatoren. D.h., wenn ein Vorgang in einer Kette von bedingten Member- oder Elementzugriffsvorgängen null
zurückgibt, wird der Rest der Kette nicht ausgeführt. Im folgenden Beispiel wird .?name
nicht ausgewertet, wenn storageAccountsettings[?i]
als null
ausgewertet wird:
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ächste Schritte
- Verwenden Sie zum Ausführen der Beispiele die Azure CLI oder Azure PowerShell, um eine Bicep-Datei bereitzustellen.
- Informationen zum Erstellen einer Bicep-Datei finden Sie unter Schnellstart: Erstellen von Bicep-Dateien mit Visual Studio Code.
- Informationen zum Beheben von Bicep-Typfehlern finden Sie unter any-Funktion für Bicep.