Recentemente, tenho revisado meus conhecimentos de Solidity para reforçar detalhes e também escrever um "WTF Introdução Básica ao Solidity", para ser usado por iniciantes (os programadores experientes podem buscar outro tutorial). Atualizo de 1 a 3 lições por semana.
Twitter: @0xAA_Science
Comunidade: Discord | Grupo no WeChat | Site oficial wtf.academy
Todo o código e tutorial estão disponíveis no GitHub: github.com/AmazingAng/WTF-Solidity
No Solidity, as variáveis declaradas mas não atribuídas têm seu valor inicial ou padrão. Nesta lição, vamos abordar os valores iniciais das variáveis mais comuns.
boolean:falsestring:""int:0uint:0enum: o primeiro elemento do enumaddress:0x0000000000000000000000000000000000000000(ouaddress(0))functioninternal: função vaziaexternal: função vazia
Podemos verificar se os valores iniciais acima estão corretos usando a função getter de variáveis public:
bool public _bool; // false
string public _string; // ""
int public _int; // 0
uint public _uint; // 0
address public _address; // 0x0000000000000000000000000000000000000000
enum ActionSet { Buy, Hold, Sell}
ActionSet public _enum; // o índice 0 corresponde ao primeiro elemento Buy
function fi() internal{} // função interna vazia
function fe() external{} // função externa vazia- Mapeamento
mapping: todos os elementos são os valores padrão domapping - Estrutura
struct: a estrutura com todos os membros definidos como valores padrão - Array
array- Array dinâmico:
[] - Array estático (de comprimento fixo): a array estática com todos os membros definidos como valores padrão
- Array dinâmico:
Podemos usar a função getter de variáveis public para verificar se os valores iniciais acima estão corretos:
// Tipos de Referência
uint[8] public _staticArray; // array estática com todos os membros definidos como valores padrão [0,0,0,0,0,0,0,0]
uint[] public _dynamicArray; // `[]`
mapping(uint => address) public _mapping; // todos os elementos são os valores padrão do mapping
// Estrutura com todos os membros definidos como valores padrão 0, 0
struct Student{
uint256 id;
uint256 score;
}
Student public student;delete a redefine o valor da variável a para seu valor inicial.
// Operador delete
bool public _bool2 = true;
function d() external {
delete _bool2; // delete redefine o valor de _bool2 para o padrão, false
}-
Implante o contrato e verifique os valores iniciais dos tipos de dados e de referência

-
Valores padrão após a operação
deletepara tipos de dados e de referência
Nesta lição, abordamos os valores iniciais das variáveis no Solidity. Quando uma variável é declarada sem atribuição, seu valor padrão é atribuído. Os valores iniciais variam de acordo com o tipo de variável, e o operador delete pode ser usado para redefinir o valor de uma variável para o padrão.
