SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
12.11.2024

Lição: 009: Sintaxe Básica do Solidity

Solidity é uma linguagem de programação estaticamente tipada, projetada para desenvolver contratos inteligentes em várias plataformas de blockchain, notavelmente a Ethereum. Compreender a sintaxe básica do Solidity é crucial para qualquer aspirante a desenvolvedor de blockchain. Nesta aula, exploraremos os elementos fundamentais da linguagem Solidity, incluindo tipos de dados, funções e estruturas de controle.

Tipos de Dados

O Solidity suporta diversos tipos de dados básicos. Abaixo estão as principais categorias:

Tipos de Valor

  1. Inteiros: Inteiros com sinal e sem sinal.

    • Exemplo: uint, int
    • Faixa: uint256 pode conter valores de 0 a 2^256 - 1.
    uint256 public numeroPositivo = 100;
    int256 public numeroNegativo = -100;
  2. Booleano: Representa um valor verdadeiro/falso.

    bool public ativo = true;
  3. Endereço: Armazena endereços da Ethereum.

    address public enderecoContrato = 0xABCDabcdABCDabcdABCDabcdABCDabcdabcdABCd;
  4. Ponto Fixado: O Solidity não suporta números de ponto fixo de forma nativa.

  5. Bytes: Arrays de bytes de tamanho dinâmico.

    • Exemplo: bytes, bytes1, bytes32
    bytes32 public hashDados = 0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890;

Tipos de Referência

  1. Strings: Usadas para armazenar texto.

    string public saudacao = "Olá, Solidity!";
  2. Arrays: Podem ser estáticos ou dinâmicos.

    uint[] public arrayDinamico; // Array dinâmico
    uint[5] public arrayFixo;     // Array de tamanho fixo
  3. Mappings: Armazenamentos de chave-valor.

    mapping(address => uint) public saldos;

Funções

As funções são definidas usando a palavra-chave function. Elas podem ter modificadores de visibilidade para controlar o acesso.

Definição de Função

function definirSaldo(address usuario, uint valor) public {
    saldos[usuario] = valor;
}

Valores de Retorno da Função

function consultarSaldo(address usuario) public view returns (uint) {
    return saldos[usuario];
}
  • view: A função não modifica o estado.
  • pure: A função não lê nem modifica o estado.

Estruturas de Controle

O Solidity suporta estruturas de controle padrão, como if, else, for, while, e mais.

Estrutura If-Else

function verificarSaldo(address usuario) public view returns (string memory) {
    if (saldos[usuario] > 0) {
        return "O saldo é positivo.";
    } else {
        return "O saldo é zero ou negativo.";
    }
}

Laço For

function preencherArray() public {
    for (uint i = 0; i < 5; i++) {
        arrayDinamico.push(i);
    }
}

Eventos

Eventos são cruciais no Solidity. Eles permitem o registro na blockchain da Ethereum e podem ser ouvidos por aplicações externas.

event SaldoAtualizado(address indexed usuario, uint novoSaldo);

function atualizarSaldo(address usuario, uint novoSaldo) public {
    saldos[usuario] = novoSaldo;
    emit SaldoAtualizado(usuario, novoSaldo);
}

Resumo

Nesta aula, cobrimos a sintaxe básica do Solidity, focando em tipos de dados, definições de funções, estruturas de controle e eventos. Dominar esses conceitos fornecerá uma base sólida para construir contratos inteligentes mais complexos. À medida que você continua sua jornada no desenvolvimento em Solidity, encontrará tópicos mais avançados, mas uma boa compreensão dos fundamentos é essencial para o sucesso. Boa codificação!

Video

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

Thank you for voting!