Bicep spread operator
De spread-operator wordt gebruikt om een iterable matrix of object uit te breiden naar afzonderlijke elementen. Met de spreadoperator kunt u eenvoudig matrices of objecten bewerken door hun elementen of eigenschappen te verspreiden in nieuwe matrices of objecten.
Verspreiden
...
De spread-operator wordt gebruikt om eigenschappen van het ene object naar het andere te kopiëren of om matrices en objecten op een beknopte en leesbare manier samen te voegen.
Voorbeelden
In het volgende voorbeeld ziet u de spread-operator die in een object wordt gebruikt:
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
Uitvoer uit het voorbeeld:
Name | Type | Weergegeven als |
---|---|---|
objB |
object | { shape: 'circle', color: 'white' } |
In het volgende voorbeeld ziet u de spread-operator die wordt gebruikt in een matrix:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
Uitvoer uit het voorbeeld:
Name | Type | Weergegeven als |
---|---|---|
arrB |
matrix | [ 1, 2, 3, 4 ] |
In het volgende voorbeeld ziet u dat de spread meerdere keren wordt gebruikt in één bewerking:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
Uitvoer uit het voorbeeld:
Name | Type | Weergegeven als |
---|---|---|
arrC |
matrix | [ 1, 2, 3, 4, 2, 3 ] |
In het volgende voorbeeld ziet u de spread die wordt gebruikt in een bewerking met meerdere regels:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
In dit gebruik wordt komma niet gebruikt tussen de twee regels. Uitvoer uit het voorbeeld:
Name | Type | Weergegeven als |
---|---|---|
objCombined |
object | { color: 'white', shape: 'circle' } |
De verspreidingsbewerking kan worden gebruikt om te voorkomen dat een optionele eigenschap wordt ingesteld. In het volgende voorbeeld wordt accessTier alleen ingesteld als de parameterlaag geen lege tekenreeks is.
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
}
}
Het voorgaande voorbeeld kan ook worden geschreven als:
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 != '' ? {accesssTier: tier} : {})
}
}
De spread-operator kan worden gebruikt om bestaande eigenschappen te overschrijven.
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
}
}
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.