SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
16.11.2024

Lição 045: Operadores de Atribuição em Solidity

Em Solidity, os operadores de atribuição são usados para atribuir valores a variáveis. Compreender esses operadores é essencial para escrever um código eficiente e claro. Nesta lição, iremos explorar os diversos operadores de atribuição disponíveis em Solidity, acompanhados de exemplos.

Operador de Atribuição Básico

O operador de atribuição básico é o sinal de igual =. Ele atribui o valor à direita à variável à esquerda.

pragma solidity ^0.8.0;

contract ExemploAtribuicao {
    uint256 public valor;

    function definirValor(uint256 _valor) public {
        valor = _valor; // Atribuindo um novo valor
    }
}

Neste exemplo, a função definirValor atribui o parâmetro _valor à variável de estado valor.

Operadores de Atribuição Composta

Solidity fornece vários operadores de atribuição composta que combinam uma operação aritmética com a atribuição. Estes incluem:

  1. += - Atribuição de Adição
  2. -= - Atribuição de Subtração
  3. *= - Atribuição de Multiplicação
  4. /= - Atribuição de Divisão
  5. %= - Atribuição de Módulo
  6. &= - Atribuição de AND Bit a Bit
  7. |= - Atribuição de OR Bit a Bit
  8. ^= - Atribuição de XOR Bit a Bit
  9. <<= - Atribuição de Deslocamento para a Esquerda
  10. >>= - Atribuição de Deslocamento para a Direita

Atribuição de Adição +=

O operador += adiciona o valor à direita à variável à esquerda.

pragma solidity ^0.8.0;

contract AtribuicaoComposta {
    uint256 public total;

    function adicionar(uint256 _valor) public {
        total += _valor; // Adiciona _valor ao total
    }
}

Atribuição de Subtração -=

O operador -= subtrai o valor à direita da variável à esquerda.

pragma solidity ^0.8.0;

contract AtribuicaoComposta {
    uint256 public saldo;

    function subtrair(uint256 _valor) public {
        saldo -= _valor; // Subtrai _valor do saldo
    }
}

Atribuição de Multiplicação *=

O operador *= multiplica a variável à esquerda pelo valor à direita.

pragma solidity ^0.8.0;

contract AtribuicaoComposta {
    uint256 public produto;

    function multiplicar(uint256 _fator) public {
        produto *= _fator; // Multiplica produto por _fator
    }
}

Atribuição de Divisão /=

O operador /= divide a variável à esquerda pelo valor à direita.

pragma solidity ^0.8.0;

contract AtribuicaoComposta {
    uint256 public quociente;

    function dividir(uint256 _divisor) public {
        quociente /= _divisor; // Divide quociente por _divisor
    }
}

Atribuição de Módulo %=

O operador %= calcula o módulo da variável à esquerda pelo valor à direita.

pragma solidity ^0.8.0;

contract AtribuicaoComposta {
    uint256 public restante;

    function modulo(uint256 _divisor) public {
        restante %= _divisor; // Calcula o restante
    }
}

Operadores de Atribuição Bit a Bit

Os operadores de atribuição bit a bit operam em bits individuais das variáveis. Aqui estão exemplos para cada um:

pragma solidity ^0.8.0;

contract AtribuicaoBit {
    uint256 public valorBitwise = 3; // Binário: 11

    function andBitwise(uint256 _valor) public {
        valorBitwise &= _valor; // AND Bit a Bit
    }

    function orBitwise(uint256 _valor) public {
        valorBitwise |= _valor; // OR Bit a Bit
    }

    function xorBitwise(uint256 _valor) public {
        valorBitwise ^= _valor; // XOR Bit a Bit
    }

    function deslocarEsquerda(uint256 _deslocamentos) public {
        valorBitwise <<= _deslocamentos; // Deslocamento para a Esquerda
    }

    function deslocarDireita(uint256 _deslocamentos) public {
        valorBitwise >>= _deslocamentos; // Deslocamento para a Direita
    }
}

Conclusão

Compreender os operadores de atribuição é vital para manipular dados dentro de seus contratos inteligentes de forma eficaz. O operador de atribuição básico = permite que você atribua valores a variáveis, enquanto os operadores de atribuição composta permitem realizar cálculos e atualizar uma variável em uma única operação. Dominar esses operadores melhorará a clareza e a eficiência do seu código em Solidity.

Experimente esses exemplos e tente criar suas próprias funções que utilizem operadores de atribuição de maneira eficaz!

Video

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

Thank you for voting!