Bicep için nesne işlevleri

Bu makalede nesnelerle çalışmaya yönelik Bicep işlevleri açıklanmaktadır.

içerir

contains(container, itemToFind)

Dizinin bir değer, nesnenin anahtar mı yoksa dizenin alt dize mi içerdiğini denetler. Dize karşılaştırması büyük/küçük harfe duyarlıdır. Ancak, bir nesnenin anahtar içerip içermediğini test ederken karşılaştırma büyük/küçük harfe duyarlı değildir.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
kapsayıcı Yes dizi, nesne veya dize Bulunabilecek değeri içeren değer.
itemToFind Yes dize veya int Bulunacak değer.

Dönüş değeri

Öğe bulunursa True , değilse False.

Örnek

Aşağıdaki örnekte, farklı türlerde contains özelliğinin nasıl kullanılacağı gösterilmektedir:

param stringToTest string = 'OneTwoThree'
param objectToTest object = {
  one: 'a'
  two: 'b'
  three: 'c'
}
param arrayToTest array = [
  'one'
  'two'
  'three'
]

output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
stringTrue Boole True
stringFalse Boole False
objectTrue Boole True
objectFalse Boole False
arrayTrue Boole True
arrayFalse Boole False

empty

empty(itemToTest)

Dizi, nesne veya dizenin boş olup olmadığını belirler.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
itemToTest Yes dizi, nesne veya dize Boş olup olmadığını denetlemek için gereken değer.

Dönüş değeri

Değer boşsa True, değilse False döndürür.

Örnek

Aşağıdaki örnek bir dizi, nesne ve dizenin boş olup olmadığını denetler.

param testArray array = []
param testObject object = {}
param testString string = ''

output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
arrayEmpty Boole True
objectEmpty Boole True
stringEmpty Boole True

Kesişim

intersection(arg1, arg2, arg3, ...)

Parametrelerden ortak öğeler içeren tek bir dizi veya nesne döndürür.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
arg1 Yes dizi veya nesne Ortak öğeleri bulmak için kullanılacak ilk değer.
arg2 Yes dizi veya nesne Ortak öğeleri bulmak için kullanılacak ikinci değer.
ek bağımsız değişkenler Hayır dizi veya nesne Ortak öğeleri bulmak için kullanılacak ek değerler.

Dönüş değeri

Ortak öğeleri olan bir dizi veya nesne.

Örnek

Aşağıdaki örnekte, diziler ve nesnelerle kesişimin nasıl kullanılacağı gösterilmektedir:

param firstObject object = {
  one: 'a'
  two: 'b'
  three: 'c'
}
param secondObject object = {
  one: 'a'
  two: 'z'
  three: 'c'
}
param firstArray array = [
  'one'
  'two'
  'three'
]
param secondArray array = [
  'two'
  'three'
]

output objectOutput object = intersection(firstObject, secondObject)
output arrayOutput array = intersection(firstArray, secondArray)

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
objectOutput Object {"one": "a", "three": "c"}
arrayOutput Dizi ["iki", "üç"]

öğeler

items(object)

Sözlük nesnesini diziye dönüştürür. Bir diziyi nesneye dönüştürme hakkında toObject bölümüne bakın.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
nesne Yes nesne Diziye dönüştürülecek sözlük nesnesi.

Dönüş değeri

Dönüştürülen sözlük için bir nesne dizisi. Dizideki her nesne, sözlüğün anahtar değerini içeren bir key özelliğe sahiptir. Her nesnenin, nesnenin özelliklerini içeren bir value özelliği de vardır.

Örnek

Aşağıdaki örnek bir sözlük nesnesini diziye dönüştürür. Dizideki her nesne için değiştirilmiş değerlerle yeni bir nesne oluşturur.

var entities = {
  item002: {
    enabled: false
    displayName: 'Example item 2'
    number: 200
  }
  item001: {
    enabled: true
    displayName: 'Example item 1'
    number: 300
  }
}

var modifiedListOfEntities = [for entity in items(entities): {
  key: entity.key
  fullName: entity.value.displayName
  itemEnabled: entity.value.enabled
}]

output modifiedResult array = modifiedListOfEntities

Yukarıdaki örnek şunu döndürür:

"modifiedResult": {
  "type": "Array",
  "value": [
    {
      "fullName": "Example item 1",
      "itemEnabled": true,
      "key": "item001"
    },
    {
      "fullName": "Example item 2",
      "itemEnabled": false,
      "key": "item002"
    }
  ]
}

Aşağıdaki örnekte items işlevinden döndürülen dizi gösterilmektedir.

var entities = {
  item002: {
    enabled: false
    displayName: 'Example item 2'
    number: 200
  }
  item001: {
    enabled: true
    displayName: 'Example item 1'
    number: 300
  }
}

var entitiesArray = items(entities)

output itemsResult array = entitiesArray

Örnek şunu döndürür:

"itemsResult": {
  "type": "Array",
  "value": [
    {
      "key": "item001",
      "value": {
        "displayName": "Example item 1",
        "enabled": true,
        "number": 300
      }
    },
    {
      "key": "item002",
      "value": {
        "displayName": "Example item 2",
        "enabled": false,
        "number": 200
      }
    }
  ]
}

JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.

json

json(arg1)

Geçerli bir JSON dizesini JSON veri türüne dönüştürür.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
arg1 Yes Dize JSON'a dönüştürülecek değer. Dize düzgün biçimlendirilmiş bir JSON dizesi olmalıdır.

Dönüş değeri

Belirtilen dizedeki JSON veri türü veya null belirtildiğinde boş bir değer.

Açıklamalar

JSON nesnesine parametre değeri veya değişken eklemeniz gerekiyorsa, işleve geçirdiğiniz dizeyi oluşturmak için concat işlevini kullanın.

Örnek

Aşağıdaki örnekte json işlevinin nasıl kullanılacağı gösterilmektedir. Boş bir nesne için null değerini geçirebileceğinize dikkat edin.

param jsonEmptyObject string = 'null'
param jsonObject string = '{\'a\': \'b\'}'
param jsonString string = '\'test\''
param jsonBoolean string = 'true'
param jsonInt string = '3'
param jsonArray string = '[[1,2,3]]'
param concatValue string = 'demo value'

output emptyObjectOutput bool = empty(json(jsonEmptyObject))
output objectOutput object = json(jsonObject)
output stringOutput string =json(jsonString)
output booleanOutput bool = json(jsonBoolean)
output intOutput int = json(jsonInt)
output arrayOutput array = json(jsonArray)
output concatObjectOutput object = json(concat('{"a": "', concatValue, '"}'))

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
emptyObjectOutput Boolean True
objectOutput Object {"a": "b"}
stringOutput String test
booleanOutput Boolean True
intOutput Tam sayı 3
arrayOutput Dizi [ 1, 2, 3 ]
concatObjectOutput Object { "a": "demo value" }

uzunluk

length(arg1)

Bir dizideki öğe sayısını, dizedeki karakterleri veya nesnedeki kök düzeyi özellikleri döndürür.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
arg1 Yes dizi, dize veya nesne Öğe sayısını almak için kullanılacak dizi, karakter sayısını almak için kullanılacak dize veya kök düzeyi özelliklerin sayısını almak için kullanılacak nesne.

Dönüş değeri

Bir int.

Örnek

Aşağıdaki örnekte, bir dizi ve dize ile uzunluğun nasıl kullanılacağı gösterilmektedir:

param arrayToTest array = [
  'one'
  'two'
  'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
  propA: 'one'
  propB: 'two'
  propC: 'three'
  propD: {
      'propD-1': 'sub'
      'propD-2': 'sub'
  }
}

output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
arrayLength Int 3
stringLength Int 13
objectLength Int 4

birleşim

union(arg1, arg2, arg3, ...)

Parametrelerdeki tüm öğeleri içeren tek bir dizi veya nesne döndürür. Diziler için, yinelenen değerler bir kez eklenir. Nesneler için yinelenen özellik adları yalnızca bir kez eklenir.

Ad alanı: sys.

Parametreler

Parametre Zorunlu Türü Açıklama
arg1 Yes dizi veya nesne Öğeleri birleştirmek için kullanılacak ilk değer.
arg2 Yes dizi veya nesne Öğeleri birleştirmek için kullanılacak ikinci değer.
ek bağımsız değişkenler Hayır dizi veya nesne Öğeleri birleştirmek için kullanılacak ek değerler.

Dönüş değeri

Dizi veya nesne.

Açıklamalar

union işlevi, sonucun sırasını ve değerlerini belirlemek için parametrelerin sırasını kullanır.

Diziler için işlev, ilk parametredeki her öğede yinelenir ve henüz mevcut değilse sonucuna ekler. Ardından, ikinci parametre ve ek parametreler için işlemi yineler. Bir değer zaten varsa, dizideki daha önceki yerleştirme korunur.

Nesneler için, ilk parametredeki özellik adları ve değerler sonuda eklenir. Daha sonraki parametreler için, sonuda yeni adlar eklenir. Sonraki bir parametre aynı ada sahip bir özelliğe sahipse, bu değer var olan değerin üzerine yazar. Özelliklerin sırası garanti değildir.

Union işlevi yalnızca üst düzey öğeleri birleştirmekle kalmaz, aynı zamanda iç içe yerleştirilmiş nesneleri yinelemeli olarak birleştirir. İç içe dizi değerleri birleştirilmemiş. Aşağıdaki bölümdeki ikinci örne bakın.

Örnek

Aşağıdaki örnekte diziler ve nesnelerle birleşim özelliğinin nasıl kullanılacağı gösterilmektedir:

param firstObject object = {
  one: 'a'
  two: 'b'
  three: 'c1'
}

param secondObject object = {
  three: 'c2'
  four: 'd'
  five: 'e'
}

param firstArray array = [
  'one'
  'two'
  'three'
]

param secondArray array = [
  'three'
  'four'
  'two'
]

output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
objectOutput Object {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Dizi ["bir", "iki", "üç", "dört"]

Aşağıdaki örnekte derin birleştirme özelliği gösterilmektedir:

var firstObject = {
  property: {
    one: 'a'
    two: 'b'
    three: 'c1'
  }
  nestedArray: [
    1
    2
  ]
}
var secondObject = {
  property: {
    three: 'c2'
    four: 'd'
    five: 'e'
  }
  nestedArray: [
    3
    4
  ]
}
var firstArray = [
  [
    'one'
    'two'
  ]
  [
    'three'
  ]
]
var secondArray = [
  [
    'three'
  ]
  [
    'four'
    'two'
  ]
]

output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)

Yukarıdaki örnekten alınan çıkış:

Adı Tür Değer
objectOutput Object {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Dizi [["bir","iki"],["üç"],["dört","iki"]]

İç içe diziler birleştirildiyse objectOutput.nestedArray değeri [1, 2, 3, 4] ve arrayOutput değeri [["one", "iki", "üç"], ["üç", "dört", "iki"]] olur.

Sonraki adımlar

  • Bicep dosyasındaki bölümlerin açıklaması için bkz . Bicep dosyalarının yapısını ve söz dizimini anlama.