Share via


Operadores Bicep

Este artigo descreve os operadores Bicep. Os operadores são usados para calcular valores, comparar valores ou avaliar condições. Há seis tipos de operadores Bicep:

Precedência e associatividade do operador

Os operadores a seguir são listados em ordem decrescente de precedência (quanto maior a posição, maior a precedência). Os operadores listados no mesmo nível têm precedência igual.

Símbolo Tipo de operação Capacidade de associação
( ) [ ] . :: Parênteses, indexadores de matriz, acessadores de propriedade e acessador de recursos aninhados Da esquerda para a direita
! - Unário Da direita para a esquerda
% * / Multiplicativo Da esquerda para a direita
+ - Aditiva Da esquerda para a direita
<= < > >= Relacional Da esquerda para a direita
== != =~ !~ Igualitário Da esquerda para a direita
&& AND lógico Da esquerda para a direita
|| OR lógico Da esquerda para a direita
?? Coalesce Da esquerda para a direita
? : Expressão condicional (ternário) Da direita para a esquerda

Parênteses

Colocar uma expressão entre parênteses permite que você substitua a precedência do operador Bicep padrão. Por exemplo, a expressãox + y / z avalia a divisão primeiro e depois a adição. No entanto, a expressão (x + y) / z avalia a adição primeiro e depois a divisão.

Acessador

Os operadores do acessador são usados para acessar recursos e propriedades aninhados em objetos.

Operador Nome Descrição
[] Acessador de índice Acessar um elemento de uma matriz ou propriedade em um objeto.
. Acessador de função Chame uma função em um recurso.
:: Acessador de recurso aninhado Acesse um recurso aninhado de fora do recurso pai.
. Acessador de propriedade Propriedades de acesso de um objeto.

Comparação

Os operadores de comparação comparam valores e retornam true ou false.

Operador Nome Descrição
>= Maior ou igual a Avalia se o primeiro valor é maior ou igual ao segundo.
> Maior que Avalia se o primeiro valor é maior que o segundo.
<= Menor ou igual a Avalia se o primeiro valor é igual ou menor que o segundo.
< Menor que Avalia se o primeiro valor é menor que o segundo.
== Igual a Avalia se dois valores são iguais.
!= Não igual a Avalia se dois valores são diferentes.
=~ Igualar maiúsculas de minúsculas Ignora maiúsculas e minúsculas para determinar se os dois valores são iguais.
!~ Não igualar maiúsculas de minúsculas Ignora maiúsculas e minúsculas para determinar se os dois valores são diferentes.

Lógico

Os operadores lógicos avaliam valores boolianos, retornam valores não nulos ou avaliam uma expressão condicional.

Operador Nome Descrição
&& And Retornará true se todos os valores forem true.
|| Or Retornará true se um dos valores for true.
! Not Nega um valor booliano. Usa um operando.
?? Coalesce Retorna o primeiro valor não nulo.
? : Expressões condicionais Avalia uma condição para true ou false e retorna um valor.

Tolerante a nulo

O operador tolerante a nulo suprime todos os avisos anuláveis para a expressão anterior.

Operador Nome Descrição
! Tolerante a nulo Suprime todos os avisos anuláveis para a expressão anterior.

Numérico

Os operadores numéricos usam inteiros para fazer cálculos e retornar valores inteiros.

Operador Nome Descrição
* Multiply Multiplica dois inteiros.
/ Divide Divide um inteiro por um inteiro.
% Módulo Divide um inteiro por um inteiro e retorna o restante.
+ Adicionar Adiciona dois inteiros.
- Subtract Subtrai um inteiro de outro inteiro. Usa dois operandos.
- Minus (unitário) Multiplica um inteiro por -1. Usa um operando.

Observação

Subtract e minus usam o mesmo operador. A funcionalidade é diferente porque subtract usa dois operandos e minus usa um operando.

Safe-dereference

O operador safe-deference ajuda a evitar erros que podem ocorrer ao tentar acessar propriedades ou elementos sem o conhecimento adequado de sua existência ou valor.

Operador Nome Descrição
<base>.?<property>, <base>[?<index>] Safe-dereference Aplica uma operação de acesso a membro de objeto ou de acesso a elemento de matriz a seu operando somente se esse operando for avaliado como não nulo; caso contrário, ele retorna null.

Próximas etapas