A Bicep objektumfüggvényei
Ez a cikk az objektumok használatához használható Bicep-függvényeket ismerteti.
contains
contains(container, itemToFind)
Ellenőrzi, hogy egy tömb tartalmaz-e értéket, egy objektum tartalmaz-e kulcsot, vagy egy sztring tartalmaz-e részsztringet. A sztringek összehasonlítása megkülönbözteti a kis- és nagybetűk értékét. Ha azonban egy objektum tartalmaz kulcsot, az összehasonlítás érzéketlen.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
tároló | Igen | tömb, objektum vagy sztring | A keresendő értéket tartalmazó érték. |
itemToFind | Igen | sztring vagy int | A keresendő érték. |
Visszaadott érték
Igaz , ha az elem megtalálható; ellenkező esetben Hamis.
Példa
Az alábbi példa bemutatja, hogyan használható különböző típusú:
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')
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
stringTrue | Bool | Igaz |
stringFalse | Bool | Hamis |
objectTrue | Bool | Igaz |
objectFalse | Bool | Hamis |
arrayTrue | Bool | Igaz |
arrayFalse | Bool | Hamis |
üres
empty(itemToTest)
Meghatározza, hogy egy tömb, objektum vagy sztring üres-e.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
itemToTest | Igen | tömb, objektum vagy sztring | Az az érték, amely ellenőrzi, hogy üres-e. |
Visszaadott érték
Igaz értéket ad vissza, ha az érték üres; ellenkező esetben Hamis.
Példa
Az alábbi példa azt ellenőrzi, hogy egy tömb, objektum és sztring üres-e.
param testArray array = []
param testObject object = {}
param testString string = ''
output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
arrayEmpty | Bool | Igaz |
objectEmpty | Bool | Igaz |
stringEmpty | Bool | Igaz |
Kereszteződés
intersection(arg1, arg2, arg3, ...)
Egyetlen tömböt vagy objektumot ad vissza a paraméterek gyakori elemeivel.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
arg1 | Igen | tömb vagy objektum | A gyakori elemek megkereséséhez elsőként használandó érték. |
arg2 | Igen | tömb vagy objektum | A második érték, amelyet a gyakori elemek kereséséhez használunk. |
további argumentumok | Nem | tömb vagy objektum | További értékek, amelyek a gyakori elemek kereséséhez használhatók. |
Visszaadott érték
Egy tömb vagy objektum a közös elemekkel.
Példa
Az alábbi példa bemutatja, hogyan használható metszet tömbökkel és objektumokkal:
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)
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
objectOutput | Objektum | {"one": "a", "három": "c"} |
arrayOutput | Tömb | ["two", "three"] |
elem
items(object)
Egy szótárobjektumot tömbté alakít át. Tekintse meg a tömb objektummá alakításáról szóló toObject című témakört.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
object | Igen | object | A tömbké konvertálandó szótárobjektum. |
Visszaadott érték
A konvertált szótár objektumtömbje. A tömb minden objektuma rendelkezik egy key
tulajdonságmal, amely tartalmazza a szótár kulcsértékét. Minden objektum rendelkezik egy value
tulajdonsággal is, amely az objektum tulajdonságait tartalmazza.
Példa
Az alábbi példa egy szótárobjektumot tömbté alakít át. A tömb minden objektumához létrehoz egy új objektumot módosított értékekkel.
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
Az előző példa a következőt adja vissza:
"modifiedResult": {
"type": "Array",
"value": [
{
"fullName": "Example item 1",
"itemEnabled": true,
"key": "item001"
},
{
"fullName": "Example item 2",
"itemEnabled": false,
"key": "item002"
}
]
}
Az alábbi példa az elemek függvényből visszaadott tömböt mutatja be.
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
A példa a következőt adja vissza:
"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
}
}
]
}
A JSON-ban az objektum nulla vagy több kulcs/érték pár rendezetlen gyűjteménye. A rendezés a megvalósítástól függően eltérő lehet. A Bicep items() függvény például betűrendbe rendezi az objektumokat. Más helyeken az eredeti sorrend megőrizhető. Emiatt a nem determinizmus miatt ne feltételezze az objektumkulcsok sorrendjét a kód írásakor, amely az üzembehelyezési paraméterekkel és kimenetekkel kommunikál.
json
json(arg1)
Egy érvényes JSON-sztringet JSON-adattípussá alakít át.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
arg1 | Igen | húr | A JSON-ra konvertálandó érték. A sztringnek megfelelően formázott JSON-sztringnek kell lennie. |
Visszaadott érték
A megadott sztring JSON-adattípusa, vagy null érték megadásakor üres érték.
Megjegyzések
Ha paraméterértéket vagy változót kell megadnia a JSON-objektumban, az összefűző függvénnyel hozza létre a függvénynek átadott sztringet .
Példa
Az alábbi példa a json függvény használatát mutatja be. Figyelje meg, hogy üres objektum esetén null értéket adhat meg.
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, '"}'))
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
emptyObjectOutput | Logikai | Igaz |
objectOutput | Objektum | {"a": "b"} |
stringOutput | Sztring | teszt |
booleanOutput | Logikai | Igaz |
intOutput | Egész | 3 |
arrayOutput | Tömb | [ 1, 2, 3 ] |
concatObjectOutput | Objektum | { "a": "demo value" } |
length (hossz)
length(arg1)
Egy tömb elemeinek számát, egy sztringben szereplő karaktereket vagy egy objektum gyökérszintű tulajdonságait adja vissza.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
arg1 | Igen | tömb, sztring vagy objektum | Az elemek számának lekéréséhez használandó tömb, a karakterek számának lekéréséhez használandó sztring vagy a gyökérszintű tulajdonságok számának lekéréséhez használni kívánt objektum. |
Visszaadott érték
Egy int.
Példa
Az alábbi példa a hossz tömbökkel és sztringekkel való használatát mutatja be:
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)
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
unió
union(arg1, arg2, arg3, ...)
Egyetlen tömböt vagy objektumot ad vissza a paraméterek összes elemével. Tömbök esetén a rendszer egyszer tartalmazza az ismétlődő értékeket. Objektumok esetén a rendszer csak egyszer tartalmazza a duplikált tulajdonságneveket.
Névtér: sys.
Paraméterek
Paraméter | Szükséges | Típus | Leírás |
---|---|---|---|
arg1 | Igen | tömb vagy objektum | Az első elemillesztéshez használható érték. |
arg2 | Igen | tömb vagy objektum | Az elemek összekapcsolásához használt második érték. |
további argumentumok | Nem | tömb vagy objektum | További értékek az elemek összekapcsolásához. |
Visszaadott érték
Tömb vagy objektum.
Megjegyzések
Az egyesítő függvény a paraméterek sorrendjét használja az eredmény sorrendjének és értékeinek meghatározásához.
Tömbök esetén a függvény végigfut az első paraméter minden elemén, és hozzáadja az eredményhez, ha még nincs jelen. Ezután megismétli a második paraméter és a további paraméterek folyamatát. Ha egy érték már jelen van, a tömb korábbi elhelyezése megmarad.
Objektumok esetén a rendszer hozzáadja az első paraméter tulajdonságneveit és értékeit az eredményhez. A későbbi paraméterek esetében a rendszer minden új nevet hozzáad az eredményhez. Ha egy későbbi paraméter azonos nevű tulajdonsággal rendelkezik, az az érték felülírja a meglévő értéket. A tulajdonságok sorrendje nem garantált.
Az egyesítő függvény nem csak a legfelső szintű elemeket egyesíti, hanem rekurzív módon egyesíti a bennük lévő beágyazott objektumokat is. A beágyazott tömbértékek nincsenek egyesítve. Lásd a második példát a következő szakaszban.
Példa
Az alábbi példa azt mutatja be, hogyan használható az unió tömbökkel és objektumokkal:
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)
Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:
Név | Típus | Érték |
---|---|---|
objectOutput | Objektum | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
arrayOutput | Tömb | ["egy", "kettő", "három", "négy"] |
Az alábbi példa a mélyegyesítési képességet mutatja be:
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)
Az előző példa kimenete a következő:
Név | Típus | Érték |
---|---|---|
objectOutput | Objektum | {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]} |
arrayOutput | Tömb | [["egy","két"],["három"],["négy","kettő"]] |
Ha a beágyazott tömbök egyesítve lennének, akkor az objectOutput.nestedArray értéke [1, 2, 3, 4], a arrayOutput értéke pedig [["one", "two", "three"], ["three", "four", "two"]].
Következő lépések
- A Bicep-fájlok szakaszainak leírását a Bicep-fájlok szerkezetének és szintaxisának ismertetése című témakörben találja.