尝试对不是数组或对象的表达式使用索引运算符 ([] 或 [^index])时,会发生此诊断。 如果索引的表达式的类型不兼容,例如字符串、整数、布尔值或 null,则会出现这种情况。
DESCRIPTION
无法为类型错误<类型的>表达式编制索引。 需要数组或对象。
级别
错误
例子
以下代码尝试为触发 BCP076 的字符串编制索引:
var notAnArray = 'hello'
var invalidAccess = notAnArray[0] // Error: BCP076 - Can't index over expression of type 'hello'. Arrays or objects are required.
此代码尝试对整数使用反向索引运算符:
var number = 42
var invalidIndex = number[^1] // Error: BCP076 - Can't index over expression of type '42'. Arrays or objects are required.
若要修复此错误,请确保表达式是数组或对象:
var sizes = ['small', 'medium', 'large']
var first = sizes[0] // Returns 'small'
var last = sizes[^1] // Returns 'large'
var settings = { key1: 'value1', key2: 'value2' }
var value = settings['key1'] // Returns 'value1'
如果需要提取字符串的某些部分,请使用 拆分 或 子字符串等字符串函数:
var text = 'hello'
var chars = split(text, '') // Returns ['h', 'e', 'l', 'l', 'o']
var firstChar = chars[0] // Returns 'h'
后续步骤
有关 Bicep 诊断的详细信息,请参阅 Bicep 核心诊断。