Sobes.tech
Junior

Fale sobre os operadores na linguagem de programação Dart.

sobes.tech IA

Resposta da IA

Os operadores em Dart são usados para realizar operações sobre variáveis e valores.

Categorias principais de operadores:

  • Atribuição: Atribuem um valor a uma variável.
    int a = 10; // Atribuição
    a += 5; // a = a + 5
    a ??= 0; // Atribuir 0 se a for null
    
  • Aritméticos: Realizam operações matemáticas.
    int soma = 5 + 3;
    int diferenca = 10 - 2;
    int produto = 4 * 6;
    double divisao = 15 / 3;
    int resto = 10 % 3; // Resto da divisão
    a++; // Incremento
    b--; // Decremento
    
  • Relacionais: Comparam dois valores e retornam um valor booleano.
    bool eIgual = (5 == 5);
    bool naoEIgual = (10 != 5);
    bool eMaior = (7 > 2);
    bool eMenor = (3 < 8);
    bool eMaiorOuIgual = (4 >= 4);
    bool eMenorOuIgual = (6 <= 10);
    
  • Lógicos: Realizam operações lógicas sobre valores booleanos.
    bool resultadoE = true && false;
    bool resultadoOu = true || false;
    bool resultadoNao = !true;
    
  • De tipo: Verificam o tipo de objeto em tempo de execução.
    var meuObjeto = "Olá";
    bool eString = meuObjeto is String; // Verificação de tipo
    bool eInt = meuObjeto is int;
    String? talvezString;
    int? resultado = talvezString as int?; // Conversão de tipo (não segura)
    
  • Condicional: Permitem executar código dependendo de uma condição.
    var x = 10;
    var y = (x > 5) ? "maior que 5" : "menor ou igual a 5"; // Operador ternário
    var z = null;
    var valor = z ?? "valor padrão"; // Operador '??'
    
  • Operadores em cascata (..): Permitem chamar vários métodos ou atribuir valores às propriedades de um mesmo objeto em sequência.
    var sb = StringBuffer();
    sb..write("Olá")
      ..write(" ")
      ..write("Mundo!");
    
  • Operador de acesso seguro a null (?): Usado para prevenir erros ao trabalhar com tipos nullable.
    String? stringNula;
    int? comprimento = stringNula?.length; // Retorna null se stringNula for null
    
  • Operador de propagação (... / ...?): Usado para incluir todos os elementos de uma lista em outra lista. ...? é seguro para null.
    var lista1 = [1, 2, 3];
    var lista2 = [0, ...lista1, 4]; // [0, 1, 2, 3, 4]
    var listaNula = null;
    var lista3 = [0, ...?listaNula, 4]; // [0, 4]
    

A ordem de prioridade dos operadores determina em que ordem as operações são realizadas em uma expressão.