Bicep-Operator „spread“
Der spread-Operator wird verwendet, um ein iterierbares Array oder Objekt auf einzelne Elemente zu erweitern. Mit dem spread-Operator können Sie Arrays oder Objekte ganz einfach bearbeiten, indem Sie ihre Elemente oder Eigenschaften auf neue Arrays oder Objekte verteilen.
Spread
...
Der Spread-Operator wird verwendet, um Eigenschaften aus einem Objekt in ein anderes zu kopieren oder Arrays und Objekte präzise und lesbar zusammenzuführen.
Beispiele
Das folgende Beispiel zeigt die Verwendung des spread-Operators in einem Objekt:
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
Ausgabe des Beispiels:
Name | type | Wert |
---|---|---|
objB |
Objekt | { shape: 'circle', color: 'white' } |
Das folgende Beispiel zeigt die Verwendung des spread-Operators in einem Array:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
Ausgabe des Beispiels:
Name | type | Wert |
---|---|---|
arrB |
array | [ 1, 2, 3, 4 ] |
Das folgende Beispiel zeigt die Mehrfachverwendung von „spread“ in einem einzelnen Vorgang:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
Ausgabe des Beispiels:
Name | type | Wert |
---|---|---|
arrC |
array | [ 1, 2, 3, 4, 2, 3 ] |
Das folgende Beispiel zeigt die Verwendung von „spread“ in einem mehrzeiligen Vorgang:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
In diesem Anwendungsfall wird zwischen den beiden Zeilen kein Komma eingefügt. Ausgabe des Beispiels:
Name | type | Wert |
---|---|---|
objCombined |
Objekt | { color: 'white', shape: 'circle' } |
Das folgende Beispiel zeigt, wie Sie ein Arrayelement bedingt hinzufügen:
@allowed(['white', 'black'])
param color string = 'black'
var colorWhite = { color: 'white' }
var colorBlack = { color: 'black' }
output objB object = ((color == 'white')? { shape: 'circle', ...colorWhite} : { shape: 'circle', ...colorBlack})
Ausgabe des Beispiels:
Name | type | Wert |
---|---|---|
objB |
Objekt | { shape: 'circle', color: 'black' } |
Der spread-Vorgang kann dazu verwendet werden, das Festlegen einer optionalen Eigenschaft zu vermeiden. Im folgenden Beispiel wird accessTier nur festgelegt, wenn der Parameter Ebene keine leere Zeichenfolge ist.
param location string = resourceGroup().location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
var accessTier = tier != '' ? {accessTier: tier} : {}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...accessTier
}
}
Das obige Beispiel kann auch wie folgt geschrieben werden:
param location string = resourceGroup().location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...(tier != '' ? {accessTier: tier} : {})
}
}
Der Überfüllungsoperator kann zum Außerkraftsetzen vorhandener Eigenschaften verwendet werden.
param location string = resourceGroup().location
param storageProperties {
accessTier: string?
}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: uniqueString(resourceGroup().id)
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Cold'
...storageProperties
}
}
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.