SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
15.11.2024

Lição: 030: Arrays de Tamanho Fixo vs Arrays Dinâmicos em Solidity

Em Solidity, a linguagem de programação utilizada para escrever contratos inteligentes na blockchain Ethereum, os arrays são uma estrutura de dados fundamental que nos permitem armazenar coleções de dados. Compreender a diferença entre arrays de tamanho fixo e arrays dinâmicos é essencial para um desenvolvimento eficaz de contratos inteligentes. Nesta aula, exploraremos ambos os tipos de arrays, seu uso e forneceremos exemplos para ilustrar como funcionam.

Arrays de Tamanho Fixo

Um array de tamanho fixo possui um tamanho predeterminado que é definido no momento da declaração. Uma vez definido, o tamanho deste array não pode ser alterado. Ele é alocado na memória ou no armazenamento de acordo com seu tipo.

Sintaxe

A sintaxe para declarar um array de tamanho fixo em Solidity é a seguinte:

tipo[tamanhoDoArray] nomeDoArray;

Exemplo

Aqui está um exemplo simples de um array de tamanho fixo que armazena as idades de três indivíduos:

pragma solidity ^0.8.0;

contract ExemploArrayTamanhoFixo {
    // Declarar um array de tamanho fixo com 3 elementos do tipo uint
    uint[3] public idades;

    // Construtor para inicializar as idades
    constructor(uint idade1, uint idade2, uint idade3) {
        idades[0] = idade1;
        idades[1] = idade2;
        idades[2] = idade3;
    }

    // Função para recuperar a idade em um índice específico
    function pegarIdade(uint indice) public view returns (uint) {
        require(indice < 3, "Índice fora dos limites");
        return idades[indice];
    }
}

Pontos-Chave

  • Arrays de tamanho fixo são definidos com um tamanho específico.
  • O acesso aos elementos é feito através de seus índices.
  • O tamanho não pode ser modificado após a declaração.

Arrays Dinâmicos

Os arrays dinâmicos, por outro lado, podem mudar de tamanho durante a execução de um contrato. Eles são mais flexíveis em comparação aos arrays de tamanho fixo, permitindo operações como adicionar e remover elementos.

Sintaxe

A sintaxe para declarar um array dinâmico é a seguinte:

tipo[] nomeDoArray;

Exemplo

Abaixo está um exemplo de um array dinâmico que permite aos usuários adicionar e recuperar números:

pragma solidity ^0.8.0;

contract ExemploArrayDinamico {
    // Declarar um array dinâmico do tipo uint
    uint[] public numeros;

    // Função para adicionar um novo número ao array
    function adicionarNumero(uint numero) public {
        numeros.push(numero);
    }

    // Função para recuperar o número em um índice específico
    function pegarNumero(uint indice) public view returns (uint) {
        require(indice < numeros.length, "Índice fora dos limites");
        return numeros[indice];
    }

    // Função para obter o tamanho do array
    function contarNumeros() public view returns (uint) {
        return numeros.length;
    }
}

Pontos-Chave

  • Arrays dinâmicos podem aumentar ou diminuir de tamanho.
  • Elementos são adicionados usando a função push().
  • O comprimento do array pode ser verificado usando a propriedade .length.

Conclusão

Em resumo, entender as diferenças entre arrays de tamanho fixo e arrays dinâmicos em Solidity é crucial para desenvolver contratos inteligentes eficientes. Arrays de tamanho fixo oferecem uma maneira direta de armazenar um número fixo de elementos, enquanto arrays dinâmicos oferecem flexibilidade para cenários onde o número de elementos pode mudar ao longo do tempo. Ambos os tipos de arrays têm seus casos de uso, e dominá-los permitirá que você escreva contratos inteligentes mais robustos e versáteis.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!