2. Tipos de Variáveis
Variáveis são como caixas para guardarem coisas. Em um ambiente 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 variável 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 único 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 usuário, 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.