11. Struct
# 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**.**