11. Struct

Structs são semelhantes a classes, quem já conhece POO sabe do que estou falando. Usando Structs podemos criar um padrão de variáveis a serem usadas pelo smart contract.

# Declarando estrutura

Nesse caso temos um struct chamado Usuário e esse "objeto" usuário é composto pelas seguintes variáveis: um endereço (tipo address), um nome (tipo string) e uma pontuação (tipo uint).

# Instanciando e inserindo dados

Para usar uma estrutura precisamos instancia-la em uma outra variável e passamos os valores para as variáveis contidas na estrutura na hora em que criamos a instância. No exemplo abaixo temos uma função chamada foo e dentro dela instanciamos o struct Usuário dentro da variável usuario1 e usuario2 usando posições implícitas, que nesse caso são o primeiro parâmetro é o endereço, segundo parâmetro é a pontuação e o terceiro parâmetro o nome.

O usuario3 foi instanciado usando dados explícitos, passamos os dados no formato dicionário com chave e valor para indicar em qual variável (chave) será guardado cada dado (valor).

# Ler, Atualizar e Deletar dados

Para deletar dados é como qualquer outra variável, basta colocar o nome da variável que possui um um struct instanciado logo após a palavra delete, como no exemplo abaixo.

Para ler e atualizar acessamos os dados como parâmetros de objetos, ou seja, usando um ponto: " . ", como no exemplo abaixo para acessar o endereço guardado em endereco_wallet que esta_ dentro da struct Usuário instanciada na variável usuario3 nós usamos a instrução_: usuario3.enderecowallet_

# Lista de estruturas

Funciona da mesma forma como outra lista pois quando instanciamos um struct dentro de uma variável estamos criando um tipo de dado e para inseri-lo em um array basta usar o comando nomedoarray.push(variavel_instanciada)

# Dicionário de Estruturas

No exemplo abaixo instanciamos um usuario5 com a estrutura que criamos anteriormente do tipo Usuário e depois guardamos esse usuario5 dentro da chave msg.sender em um dicionario.

Last Updated: 08/10/2022 22:55:37