Operadores

=

atribuição. O operando esquerdo deve ser um identificador, e o direito deve resultar em um valor ou referência apropriadamente.

+, -, /, *, %

aritimética básica, aplicada aos operandos esquerdo e direito. O operador + também pode concatenar strings.

+=, -=, /=, *=, %=

operação aritimética entre o operador esquerdo e direito, where the left must be an identifier, para qual o resultado é atribuído.

++, --

operações de incremento e decremento com atribuição implicita. Esses tomam só um argumento, que deve ser um identificador de um tipo simples de dado.

O valor será mudado e atribuido de volta ao identificador. Esses operadores podem ser dispostos como prefixo ou pósfixos, - com o primeiro o valor calculado da declaração será o valor recém calculado, com o último o valor original é retornado.

|, ^, &, ~, |=, &=, ^=

operações bitwise: or(ou), exclusive or(ou exclusivo), and(e), not(não). O segundo conjunto inclui atribuição e é análogo às versões aritiméticas. Eles podem ser aplicadas a qualquer tipo valor simples. (Não existe operador de atribuição associado com ~ porque esse é o operador unário. A operação equivalente é a = ~a).

<<, >>

operações bit shift, desloca o operando esquerdo o número de bits de acordo com o operando direito.

<<=, >>=

operações bit shift, desloca o operando esquerdo o numero de bits de acordo com o operando direito. O operando esquerdo deve ser um identificador, o qual o resultado é atribuído.

==

teste de igualdade. Resulta em um valor booleano(bool) dependendo se os operandos esquerdo e direito são iguais. No caso dos tipos valor isso significa que seus valores são iguais, no caso dos tipos referencia que os objetos são da mesma instância. Uma exceção a essa regra é o tipo string, que é testada em igualdade por valor.

<, >, >=, <=, !=

teste de inigualdade. Resulta em um valor bool dependendo se os operandos esquerdo e direito são diferentes na maneira descrita. Eles são válidos para valores simples de dados, e para o tipo string. Para strings esses operadores comparam a ordem lexográfica.

!, &&, ||

operadores lógicos: not(não), and(e), or(ou). Essas operações podem ser aplicadas a valores booleanos - o primeiro toma um valor dos outros dois.

? :

operador de condição ternária. Resulta em uma condição e retorna a sub-expressão da esquerde ou direita baseado e, qual condição é verdadeira ou falsa: condição ? valor se for verdade : valor se for falso

??

operador null coalescing: a ?? b é equivalente a a != null ? a : b. Esse operador é útil para prover um valor padrão no caso da referência ser nula(null):

stdout.printf("Olá, %s!\n", nome ?? "pessoa desconhecida");
in

checa se o operando direito contem o operando esquerdo. Esse operador funciona em arrays, strings, coleções ou qualquer outro tipo que possua o método contains(). Para strings ele executa uma busca de substring.

Operadores não podem ser sobrecarregados em Vala. Existem operadores extras que são válidos no contexto de expressões lambda e outras tarefas específicas - estes são explicados no contexto onde são aplicáveis.

results matching ""

    No results matching ""