Bicep spread işleci
Spread işleci, yinelenebilir bir diziyi veya nesneyi tek tek öğelere genişletmek için kullanılır. Spread işleci, öğelerini veya özelliklerini yeni dizilere veya nesnelere yayarak dizileri veya nesneleri kolayca işlemenizi sağlar.
Spread
...
Spread işleci, özellikleri bir nesneden diğerine kopyalamak veya dizileri ve nesneleri kısa ve okunabilir bir şekilde birleştirmek için kullanılır.
Örnekler
Aşağıdaki örnekte bir nesnede kullanılan spread işleci gösterilmektedir:
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
Örnekten çıktı:
Adı | Tür | Değer |
---|---|---|
objB |
nesne | { shape: 'circle', color: 'white' } |
Aşağıdaki örnekte bir dizide kullanılan spread işleci gösterilmektedir:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
Örnekten çıktı:
Adı | Tür | Değer |
---|---|---|
arrB |
dizi | [ 1, 2, 3, 4 ] |
Aşağıdaki örnek, tek bir işlemde birden çok kez kullanılan yayılmayı gösterir:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
Örnekten çıktı:
Adı | Tür | Değer |
---|---|---|
arrC |
dizi | [ 1, 2, 3, 4, 2, 3 ] |
Aşağıdaki örnek, çok satırlı bir işlemde kullanılan yayılmayı gösterir:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
Bu kullanımda, iki satır arasında virgül kullanılmaz. Örnekten çıktı:
Adı | Tür | Değer |
---|---|---|
objCombined |
nesne | { color: 'white', shape: 'circle' } |
Aşağıdaki örnekte bir dizi öğesinin koşullu olarak nasıl ekleneceği gösterilmektedir:
@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})
Örnekten çıktı:
Adı | Tür | Değer |
---|---|---|
objB |
nesne | { shape: 'circle', color: 'black' } |
Yayma işlemi, isteğe bağlı bir özelliğin ayarlanmasını önlemek için kullanılabilir. Aşağıdaki örnekte accessTier yalnızca parametre katmanı boş bir dize değilse ayarlanır.
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
}
}
Yukarıdaki örnek şu şekilde de yazılabilir:
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} : {})
}
}
Spread işleci mevcut özellikleri geçersiz kılmak için kullanılabilir.
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
}
}
Sonraki adımlar
- Örnekleri çalıştırmak için Azure CLI veya Azure PowerShell kullanarak bir Bicep dosyası dağıtın.
- Bicep dosyası oluşturmak için bkz . Hızlı Başlangıç: Visual Studio Code ile Bicep dosyaları oluşturma.
- Bicep türü hatalarını çözme hakkında bilgi için bkz . Bicep için herhangi bir işlev.