你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Bicep 展开运算符
展开运算符用于将可迭代数组或对象展开为单个元素。 使用展开运算符,你可以通过将数组或对象的元素或属性展开为新的数组或对象来轻松操作数组或对象。
Spread
...
展开运算符用于将属性从一个对象复制到另一个对象,或者以简洁易读的方式合并数组和对象。
示例
以下示例显示了对象中使用的展开运算符:
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
示例中的输出:
名称 | 类型 | 值 |
---|---|---|
objB |
对象 (object) | { shape: 'circle', color: 'white' } |
以下示例显示了数组中使用的展开运算符:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
示例中的输出:
名称 | 类型 | 值 |
---|---|---|
arrB |
数组 | [ 1, 2, 3, 4 ] |
以下示例显示了在单个运算中多次使用展开运算符:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
示例中的输出:
名称 | 类型 | 值 |
---|---|---|
arrC |
数组 | [ 1, 2, 3, 4, 2, 3 ] |
以下示例显示了在多行运算中使用展开运算符:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
在此用法中,两行之间不使用逗号。 示例中的输出:
名称 | 类型 | 值 |
---|---|---|
objCombined |
对象 (object) | { color: 'white', shape: 'circle' } |
展开运算可用于避免设置可选属性。 在以下示例中,仅当参数层不是空字符串时,才会设置 accessTier。
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
}
}
前面的示例也可以写成:
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} : {})
}
}
扩张运算符可用于替代现有属性。
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
}
}
后续步骤
- 若要运行这些示例,请使用 Azure CLI 或 Azure PowerShell 来部署 Bicep 文件。
- 若要创建 Bicep 文件,请参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件。
- 有关如何解决 Bicep 类型错误的信息,请参阅 Bicep 的 Any 函数。