Bicep safe-dereference – operátor
Operátor safe-dereference poskytuje způsob, jak bezpečně přistupovat k vlastnostem objektu nebo prvků pole. Pomáhá zabránit chybám, ke kterým může dojít při pokusu o přístup k vlastnostem nebo prvkům bez řádného vědomí jejich existence nebo hodnoty.
safe-dereference
<base>.?<property>
<base>[?<index>]
Operátor safe-dereference použije pro svůj operand operaci přístup člena nebo .?<property>
elementu, [?<index>]
pouze pokud se tento operand vyhodnotí jako nenulový. V opačném případě vrátí hodnotu null. To je
- Pokud
a
se vyhodnotí jakonull
, výsledeka.?x
neboa[?x]
jenull
. - Pokud
a
je objekt, který nemáx
vlastnost, paka.?x
jenull
. - Pokud
a
je objekt, který nemá prvek v indexux
, paka[?x]
jenull
- Pokud
a
je matice, jejíž délka je menší nebo rovnax
, paka[?x]
jenull
. - Pokud
a
není null a má vlastnost s názvemx
, výsledeka.?x
je stejný jako výsledek .a.x
- Pokud
a
není null a má prvek indexux
, výsledeka[?x]
je stejný jako výsledeka[x]
Operátory bezpečného dereference jsou zkratové. To znamená, že pokud jedna operace v řetězci operací přístupu podmíněného člena nebo elementu vrátí null
, zbytek řetězce se nespustí. V následujícím příkladu se nevyhodnocuje, .?name
pokud storageAccountsettings[?i]
se vyhodnotí jako 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'
}
}]
Další kroky
- Ke spuštění příkladů použijte Azure CLI nebo Azure PowerShell k nasazení souboru Bicep.
- Pokud chcete vytvořit soubor Bicep, přečtěte si článek Rychlý start: Vytvoření souborů Bicep pomocí editoru Visual Studio Code.
- Informace o řešení chyb typu Bicep naleznete v tématu Libovolná funkce pro Bicep.