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
-
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;
- Exemplo:
-
Booleano: Representa um valor verdadeiro/falso.
bool public ativo = true;
-
Endereço: Armazena endereços da Ethereum.
address public enderecoContrato = 0xABCDabcdABCDabcdABCDabcdABCDabcdabcdABCd;
-
Ponto Fixado: O Solidity não suporta números de ponto fixo de forma nativa.
-
Bytes: Arrays de bytes de tamanho dinâmico.
- Exemplo:
bytes
,bytes1
,bytes32
bytes32 public hashDados = 0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890;
- Exemplo:
Tipos de Referência
-
Strings: Usadas para armazenar texto.
string public saudacao = "Olá, Solidity!";
-
Arrays: Podem ser estáticos ou dinâmicos.
uint[] public arrayDinamico; // Array dinâmico uint[5] public arrayFixo; // Array de tamanho fixo
-
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!