Delen via


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