Logiska Bicep-operatorer
De logiska operatorerna utvärderar booleska värden, returnerar värden som inte är null eller utvärderar ett villkorsuttryck. Om du vill köra exemplen använder du Azure CLI eller Azure PowerShell för att distribuera en Bicep-fil.
Operator | Name |
---|---|
&& |
och |
|| |
eller |
! |
Not |
?? |
Sammansmälta |
? : |
Villkorsuttryck |
Och &
operand1 && operand2
Avgör om båda värdena är sanna.
Operander
Operand | Typ | Beskrivning |
---|---|---|
operand1 |
boolean | Det första värdet för att kontrollera om det är sant. |
operand2 |
boolean | Det andra värdet för att kontrollera om det är sant. |
Fler operander | boolean | Fler operander kan ingå. |
Returvärde
True
när båda värdena är sanna returneras annars false
.
Exempel
Utvärderar en uppsättning parametervärden och en uppsättning uttryck.
param operand1 bool = true
param operand2 bool = true
output andResultParm bool = operand1 && operand2
output andResultExp bool = 10 >= 10 && 5 > 2
Utdata från exemplet:
Namn | Typ | Värde |
---|---|---|
andResultParm |
boolean | true |
andResultExp |
boolean | true |
För att undvika att språkuttrycksegenskapen "foo" inte finns undantag med Bicep-objekt kan du använda den logiska operatorn Och som visas i följande exempel:
param objectToTest object = {
one: 1
two: 2
three: 3
}
output bar bool = contains(objectToTest, 'four') && objectToTest.four == 4
Eller ||
operand1 || operand2
Avgör om något av värdena är sant.
Operander
Operand | Typ | Beskrivning |
---|---|---|
operand1 |
boolean | Det första värdet för att kontrollera om det är sant. |
operand2 |
boolean | Det andra värdet för att kontrollera om det är sant. |
Fler operander | boolean | Fler operander kan ingå. |
Returvärde
True
när något av värdena är sant returneras annars false
.
Exempel
Utvärderar en uppsättning parametervärden och en uppsättning uttryck.
param operand1 bool = true
param operand2 bool = false
output orResultParm bool = operand1 || operand2
output orResultExp bool = 10 >= 10 || 5 < 2
Utdata från exemplet:
Namn | Typ | Värde |
---|---|---|
orResultParm |
boolean | true |
orResultExp |
boolean | true |
Om du vill undvika att egenskapen för språkuttrycksmatrisindexet "x" ligger utanför gränsen kan du använda operatorn Eller logisk som du ser i följande exempel:
param emptyArray array = []
param numberArray array = [1, 2, 3]
output foo bool = empty(emptyArray) || emptyArray[0] == 'bar'
output bar bool = length(numberArray) >= 3 || numberArray[3] == 4
Inte!
!boolValue
Negerar ett booleskt värde.
Operand
Operand | Typ | Beskrivning |
---|---|---|
boolValue |
boolean | Booleskt värde som negeras. |
Returvärde
Negerar det initiala värdet och returnerar ett booleskt värde. Om det ursprungliga värdet är true
returneras det false
.
Exempel
Operatorn not
negerar ett värde. Värdena kan omslutas med parenteser.
param initTrue bool = true
param initFalse bool = false
output startedTrue bool = !(initTrue)
output startedFalse bool = !initFalse
Utdata från exemplet:
Namn | Typ | Värde |
---|---|---|
startedTrue |
boolean | falskt |
startedFalse |
boolean | true |
Sammansmälta??
operand1 ?? operand2
Returnerar det första värdet som inte är null från operander.
Operander
Operand | Typ | Beskrivning |
---|---|---|
operand1 |
string, integer, boolean, object, array | Värde att testa för null . |
operand2 |
string, integer, boolean, object, array | Värde att testa för null . |
Fler operander | string, integer, boolean, object, array | Värde att testa för null . |
Returvärde
Returnerar det första värdet som inte är null. Tomma strängar, tomma matriser och tomma objekt returneras inte null
och ett <tomt> värde returneras.
Exempel
Utdatainstruktionerna returnerar värdena som inte är null. Utdatatypen måste matcha typen i jämförelsen eller så genereras ett fel.
param myObject object = {
isnull1: null
isnull2: null
string: 'demoString'
emptystr: ''
integer: 10
}
output nonNullStr string = myObject.isnull1 ?? myObject.string ?? myObject.isnull2
output nonNullInt int = myObject.isnull1 ?? myObject.integer ?? myObject.isnull2
output nonNullEmpty string = myObject.isnull1 ?? myObject.emptystr ?? myObject.string ?? myObject.isnull2
Utdata från exemplet:
Namn | Typ | Värde |
---|---|---|
nonNullStr |
sträng | demoString |
nonNullInt |
heltal | 10 |
nonNullEmpty |
sträng | <empty> |
Villkorsuttryck? :
condition ? true-value : false-value
Utvärderar ett villkor och returnerar ett värde om villkoret är sant eller falskt.
Operander
Operand | Typ | Beskrivning |
---|---|---|
condition |
boolean | Villkor för att utvärdera som sant eller falskt. |
true-value |
string, integer, boolean, object, array | Värde när villkoret är sant. |
false-value |
string, integer, boolean, object, array | Värde när villkoret är falskt. |
Exempel
Det här exemplet utvärderar en parameters initiala värde och returnerar ett värde om villkoret är sant eller falskt.
param initValue bool = true
output outValue string = initValue ? 'true value' : 'false value'
Utdata från exemplet:
Namn | Typ | Värde |
---|---|---|
outValue |
sträng | true value |
Nästa steg
- Information om hur du skapar en Bicep-fil finns i Snabbstart: Skapa Bicep-filer med Visual Studio Code.
- Information om hur du löser Bicep-typfel finns i Alla funktioner för Bicep.
- Om du vill jämföra syntax för Bicep och JSON läser du Jämföra JSON och Bicep för mallar.
- Exempel på Bicep-funktioner finns i Bicep-funktioner.