Logische bicep-operators

De logische operators evalueren booleaanse waarden, retourneren niet-null-waarden of evalueren een voorwaardelijke expressie. Als u de voorbeelden wilt uitvoeren, gebruikt u Azure CLI of Azure PowerShell om een Bicep-bestand te implementeren.

Operator Naam
&& And
|| Of
! Not
?? Samenvoeging
? : Voorwaardelijke expressie

En &&

operand1 && operand2

Bepaalt of beide waarden waar zijn.

Operands

Operand Type Beschrijving
operand1 boolean De eerste waarde om te controleren of waar is.
operand2 boolean De tweede waarde om te controleren of waar is.
Meer operanden boolean Er kunnen meer operanden worden opgenomen.

Retourwaarde

True als beide waarden waar zijn, wordt anders false geretourneerd.

Opmerking

Evalueert een set parameterwaarden en een set expressies.

param operand1 bool = true
param operand2 bool = true

output andResultParm bool = operand1 && operand2
output andResultExp bool = 10 >= 10 && 5 > 2

Uitvoer uit het voorbeeld:

Name Type Weergegeven als
andResultParm boolean true
andResultExp boolean true

Als u wilt voorkomen dat de eigenschap foo van de taalexpressie niet bestaat, bestaat er geen uitzondering met Bicep-objecten, kunt u de logische operator En gebruiken, zoals wordt weergegeven in het volgende voorbeeld:

param objectToTest object = {
  one: 1
  two: 2
  three: 3
}

output bar bool = contains(objectToTest, 'four') && objectToTest.four == 4

Of ||

operand1 || operand2

Bepaalt of een van beide waarden waar is.

Operands

Operand Type Beschrijving
operand1 boolean De eerste waarde om te controleren of waar is.
operand2 boolean De tweede waarde om te controleren of waar is.
Meer operanden boolean Er kunnen meer operanden worden opgenomen.

Retourwaarde

True als een van de waarden waar is, wordt anders false geretourneerd.

Opmerking

Evalueert een set parameterwaarden en een set expressies.

param operand1 bool = true
param operand2 bool = false

output orResultParm bool = operand1 || operand2
output orResultExp bool = 10 >= 10 || 5 < 2

Uitvoer uit het voorbeeld:

Name Type Weergegeven als
orResultParm boolean true
orResultExp boolean true

Als u wilt voorkomen dat de matrixindex x van de taalexpressie buiten de grenzen valt, kunt u de logische operator Of gebruiken, zoals wordt weergegeven in het volgende voorbeeld:

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

Niet!

!boolValue

Onderhandelt een Booleaanse waarde.

Operand

Operand Type Beschrijving
boolValue boolean Booleaanse waarde die wordt ontkend.

Retourwaarde

Negeert de oorspronkelijke waarde en retourneert een Booleaanse waarde. Als de oorspronkelijke waarde is true, wordt deze false geretourneerd.

Opmerking

De not operator ontkent een waarde. De waarden kunnen worden verpakt met haakjes.

param initTrue bool = true
param initFalse bool = false

output startedTrue bool = !(initTrue)
output startedFalse bool = !initFalse

Uitvoer uit het voorbeeld:

Name Type Weergegeven als
startedTrue boolean false
startedFalse boolean true

Samenvoeging ??

operand1 ?? operand2

Retourneert de eerste niet-null-waarde van operanden.

Operands

Operand Type Description
operand1 tekenreeks, geheel getal, booleaanse waarde, object, matrix Te testen waarde voor null.
operand2 tekenreeks, geheel getal, booleaanse waarde, object, matrix Te testen waarde voor null.
Meer operanden tekenreeks, geheel getal, booleaanse waarde, object, matrix Te testen waarde voor null.

Retourwaarde

Retourneert de eerste niet-null-waarde. Lege tekenreeksen, lege matrices en lege objecten zijn niet null en er wordt een <lege> waarde geretourneerd.

Opmerking

De uitvoerinstructies retourneren de niet-null-waarden. Het uitvoertype moet overeenkomen met het type in de vergelijking of er wordt een fout gegenereerd.

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

Uitvoer uit het voorbeeld:

Name Type Weergegeven als
nonNullStr tekenreeks demoString
nonNullInt int 10
nonNullEmpty tekenreeks <empty>

Voorwaardelijke expressie? :

condition ? true-value : false-value

Evalueert een voorwaarde en retourneert een waarde of de voorwaarde waar of onwaar is.

Operands

Operand Type Beschrijving
condition boolean Voorwaarde om te evalueren als waar of onwaar.
true-value tekenreeks, geheel getal, booleaanse waarde, object, matrix Waarde wanneer voorwaarde waar is.
false-value tekenreeks, geheel getal, booleaanse waarde, object, matrix Waarde wanneer voorwaarde onwaar is.

Opmerking

In dit voorbeeld wordt de initiƫle waarde van een parameter geƫvalueerd en wordt een waarde geretourneerd, ongeacht of de voorwaarde waar of onwaar is.

param initValue bool = true

output outValue string = initValue ? 'true value' : 'false value'

Uitvoer uit het voorbeeld:

Name Type Weergegeven als
outValue tekenreeks werkelijke waarde

Volgende stappen