Bicep中能否在对象内部引用已定义的字符串参数?
Bicep对象结构内引用已定义字符串参数的说明
完全支持该用法,在数组、对象结构内部引用提前定义的字符串参数的写法符合Bicep语法规范。
语法验证说明
你给出的示例逻辑本身无错,仅需调整格式对齐即可正常编译部署,可直接运行的代码如下:
param str string = 'value' param ob array = [ { name: str // 此处直接引用已定义的str参数合法,部署时会自动解析为参数实际值 } { name: 'value' } ]
部署时如果不为str传入自定义值,数组ob内两个元素的name字段最终取值完全一致,均为'value'。
相关注意事项
- Bicep按定义顺序解析标识符,被引用的参数、变量必须定义在引用位置之前,不支持后向引用。示例中把
str定义在ob之前的顺序是正确的,如果调换二者定义顺序,编译阶段会直接抛出无法解析符号的错误 - 除了参数,对象、数组结构内部也可以直接引用提前通过
var关键字声明的变量、部署上下文函数的返回值,用法和引用硬编码常量没有区别 - 该引用逻辑对所有Bicep支持的结构化类型(对象、数组、多层嵌套对象)均生效,不存在类型层面的引用限制
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

