SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
16.11.2024

Lição: 043: Operadores Lógicos em Solidity

Nesta aula, vamos explorar os operadores lógicos em Solidity, que são fundamentais para construir condições complexas em seus contratos inteligentes. Os operadores lógicos permitem combinar múltiplas expressões booleanas e avaliá-las com base em regras lógicas.

Visão Geral dos Operadores Lógicos

Solidity suporta três operadores lógicos principais:

  1. E (&&): Retorna true se ambas as expressões forem true.
  2. OU (||): Retorna true se pelo menos uma das expressões for true.
  3. NÃO (!): Inverte o valor booleano de uma expressão.

Vamos ver como usar esses operadores na prática através de alguns exemplos.

Exemplo 1: Usando o Operador E

O operador && verifica se ambas as condições são verdadeiras.

pragma solidity ^0.8.0;

contract ExemploOperadorLogico {
    function ehAdulto(uint idade) public pure returns (bool) {
        // Verifica se a idade é maior ou igual a 18
        return idade >= 18 && idade <= 65; // true se a idade estiver entre 18 e 65
    }
}

Neste exemplo, a função ehAdulto retorna true se a idade estiver entre 18 e 65, e false caso contrário.

Exemplo 2: Usando o Operador OU

O operador || verifica se pelo menos uma condição é verdadeira.

pragma solidity ^0.8.0;

contract ExemploOperadorLogico {
    function ehElegivelParaDesconto(uint idade, bool estudante) public pure returns (bool) {
        // Uma pessoa é elegível para desconto se for estudante ou tiver menos de 18 anos
        return idade < 18 || estudante; // true se a idade for menor que 18 ou se for um estudante
    }
}

Neste exemplo, a função ehElegivelParaDesconto retorna true se a idade for menor que 18 ou se a pessoa for estudante.

Exemplo 3: Usando o Operador NÃO

O operador ! nega o valor booleano.

pragma solidity ^0.8.0;

contract ExemploOperadorLogico {
    function naoEstaAtivo(bool ativo) public pure returns (bool) {
        // Verifica se um usuário não está ativo
        return !ativo; // true se ativo for false
    }
}

Nesta função, naoEstaAtivo retorna true se o parâmetro ativo for false, verificando efetivamente se um usuário está inativo.

Exemplo 4: Combinando Operadores Lógicos

Os operadores lógicos podem ser combinados para formar expressões complexas.

pragma solidity ^0.8.0;

contract ExemploOperadorLogico {
    function podeAcessar(uint idade, bool temPermissao) public pure returns (bool) {
        // Um usuário pode acessar se for adulto e tiver permissão
        return (idade >= 18 && temPermissao);
    }
}

Neste exemplo, podeAcessar retorna true se o usuário tiver pelo menos 18 anos e possuir as permissões necessárias.

Conclusão

Os operadores lógicos em Solidity são vitais para criar contratos inteligentes robustos. Eles permitem o desenvolvimento de condições complexas que ditam o fluxo da lógica dentro do seu contrato. Compreender como usar efetivamente esses operadores fará com que você escreva um código mais inteligente e condicional.

Pratique usar esses operadores para consolidar seu entendimento e, nas próximas aulas, exploraremos conceitos mais avançados em Solidity!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!