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
:false
string
:""
int
:0
uint
:0
enum
: o primeiro elemento do enumaddress
:0x0000000000000000000000000000000000000000
(ouaddress(0)
)function
internal
: 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
delete
para 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.