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:
- E (
&&
): Retornatrue
se ambas as expressões foremtrue
. - OU (
||
): Retornatrue
se pelo menos uma das expressões fortrue
. - 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!