Menu
Coddy logo textTech

Structs

Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 43 de 53.

Uma struct agrupa campos relacionados sob um nome de tipo personalizado. Cada campo tem um tipo e um nome, e os campos podem ter tipos diferentes. Declare o tipo no escopo do contrato, crie um valor e, em seguida, acesse seus campos com um ponto.

Declare isto no escopo do contrato:

struct Parcel { uint256 weight; bool ready; }

Use-a dentro da função main fornecida:

Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);

O tipo Parcel tem os campos weight e ready. O construtor posicional fornece valores na ordem de declaração. Este item vive na memória durante a chamada atual; declarar apenas um tipo struct não cria registros armazenados.

Use um ponto seguido pelo nome do campo para ler ou alterar um campo da struct.

challenge icon

Desafio

Fácil

Declare uma struct chamada Badge com uint256 level e bool active, nessa ordem. Crie uma Badge em memória a partir das entradas fornecidas e imprima ambos os campos.

Os testes passam argumentos para main nesta ordem: uint256 level, bool active. Cada teste começa com um estado novo do contrato.

Use console.log para a saída solicitada. Imprima somente os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.

Experimente você mesmo

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 level, bool active) external view {
        // Escreva sua solução aqui.
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Solidity