Aracılığıyla paylaş


Bicep safe-dereference işleci

safe-dereference işleci, bir nesnenin veya dizinin öğelerinin özelliklerine güvenli bir şekilde erişmek için bir yol sağlar. Varoluşları veya değerleri hakkında doğru bilgi olmadan özelliklere veya öğelere erişmeye çalışırken oluşabilecek hataları önlemeye yardımcı olur.

safe-dereference

<base>.?<property> <base>[?<index>]

Bir safe-dereference işleci, bir üye erişimi, .?<property>veya öğe erişimi, [?<index>], işlemini yalnızca işlenen null olmayan olarak değerlendirilirse işlenene uygular; aksi takdirde null döndürür. Yani

  • olarak değerlendirilirse anullveya a[?x] sonucunu a.?x elde edernull.
  • Özelliği olmayan bir x nesneysea, o zaman a.?x olurnull.
  • dizininde xöğesi olmayan bir nesneysea,a[?x]null
  • Uzunluğu değerinden küçük veya buna eşit a[?x]xolan bir dizi isea, olurnull.
  • null değilse ve adlı xbir özelliği varsaa, sonucu a.?x sonucu a.xile aynıdır.
  • null değilse ve dizininde xa[?x] bir öğesi varsa a sonucu,a[x]

Safe-dereference işleçleri kısa devredir. Başka bir ifadeyle, koşullu üye veya öğe erişim işlemleri zincirindeki bir işlem döndürürse null, zincirin geri kalanı yürütülemez. Aşağıdaki örnekte, .?name olarak değerlendirilirse storageAccountsettings[?i] değerlendirilmez null:

param storageAccountSettings array = []
param storageCount int
param location string = resourceGroup().location

resource storage 'Microsoft.Storage/storageAccounts@2025-06-01' = [for i in range(0, storageCount): {
  name: storageAccountSettings[?i].?name ?? 'defaultname'
  location: storageAccountSettings[?i].?location ?? location
  kind: storageAccountSettings[?i].?kind ?? 'StorageV2'
  sku: {
    name: storageAccountSettings[?i].?sku ?? 'Standard_GRS'
  }
}]

Sonraki adımlar