2. Tipos de Variáveis
Variáveis são como caixas para guardarem coisas. Em um amibiente de desenvolvimento e programação elas são para guardar dados, números, estruturas, textos...
# Considerações importantes.
- Há tipos simples e comuns de variáveis
- Há variáveis complexas e com casos de uso específico
- Quando digo "simples" e complexa" refiro-me a profundidade de entendimento necessário para manipula-las e saber o porquê usa-las.
# Uma breve introdução de como as variáveis funcionam.
Os tipos de dados em solidity são explícitos, ou seja nós precisamos definir através de uma palavra chave qual é o tipo da variável. No print abaixo o tipo e o nome da variável estão em azul e o seu conteúdo está em amarelo.
Após definirmos o tipo da variável e seu nome podemos definir o seu valor ou então deixar para ser definido depois em outra etapa do programa.
exemplo de variável definida que será usada depois. (ignore a parte do código que você não entender agora)
Nesse caso temos uma função chamada qualSeuNome que irá receber de fora do programa um texto digitado, que será armazenado em uma variável temporária chamada nome_digitado e depois a váriavel nome que foi definida antes receberá esse valor. Depois da execução dessa função a variável nome terá o valor que foi passado pra ela através da função qualSeuNome.
# Principais tipos de variáveis:
# Endereço (address).
o tipo address armazena endereços de carteiras e outros contratos.
# Booleano.
bool é um tipo de dado primitivo que representa dois valores: verdadeiro ou falso. Em inglês: true and false.
# Números inteiros positivos.
Para armazenar números inteiros positivos usamos o tipo uint e para números de tamanho definido podemos usar por exemplo uint256 para números de 256 bytes.
# Texto simples (string).
string é a forma mais comum de armazenar textos mas também podemos usar o formato bytes32 para tamanhos definidos e otimização de gas_._
# Texto com tamanho específico (bytes)
# Listas específicas (arrays)
É muito importante saber como arrays funcionam pois são muito usados. Há uma semelhança enorme entre listas e arrays e a maior diferença entre eles é que arrays são listas de um unico tipo de dado. Só podemos ter uma lista de números ou uma lista de textos ou uma lista de endereços... não se pode misturar os tipos de dados.
Seguindo a lógica de antes primeiro define-se o tipo da variável e depois o seu nome. Para definir um array usa-se o seu tipo de dado mais "[]".
# Chave e valor (mapping).
Pode-se dizer que mapping é como os dicionários em outras linguagens. Utiliza-se um tipo de "lista" de chaves e cada chave guarda um valor.
Nesse caso temos uma "lista" chamada saldos que possui endereços como chave e dentro de cada endereço está guardado um valor.
# Estrutura de dados (struct).
É o tipo de dado mais parecido com Objetos em outras linguagens. É muito usado para definir uma estrutura padrão de variáveis a serem usadas em contextos específicos.
Por exemplo, se você construir um programa que precisa do nome de um usuario, seu id e uma lista de produtos ou NFTs que ele comprou, e precisar disso em vários contextos do seu programa a forma mais compreensível e legível de manipular isso é usando uma estrutura definida de variáveis.
# Variáveis categóricas (Enums)
Enums são muito uteis para categorização de dados, você pode criar uma categoria "Cor" e guardar várias cores dentro dessa categoria e quando precisar de uma determinada cor pode "pedir" um valor que está guardando dentro dessa categoria.