Skip to content

Latest commit

 

History

History
40 lines (23 loc) · 2.32 KB

11.-struct.md

File metadata and controls

40 lines (23 loc) · 2.32 KB
description
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.

11. Struct

Declarando estrutura

Nesse caso temos um struct chamado Usuario 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 Usuario 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 possuim 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 Usuario 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 Usuario e depois guardamos esse usuario5 dentro da chave msg.sender em um dicionario**.**