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.

Operatör Name
&& och
|| eller
! Not
?? Sammansejning
? : Villkorsuttryck

Och &

operand1 && operand2

Avgör om båda värdena är sanna.

Operander

Operanden 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

Operanden 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.

Operanden

Operanden 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 truereturneras 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

Coalesce ??

operand1 ?? operand2

Returnerar det första värdet som inte är null från operander.

Operander

Operanden 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

Operanden 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