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:
+=
- Atribuição de Adição-=
- Atribuição de Subtração*=
- Atribuição de Multiplicação/=
- Atribuição de Divisão%=
- Atribuição de Módulo&=
- Atribuição de AND Bit a Bit|=
- Atribuição de OR Bit a Bit^=
- Atribuição de XOR Bit a Bit<<=
- Atribuição de Deslocamento para a Esquerda>>=
- 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!