Guia Abrangente para a Sintaxe do Solidity
Neste artigo, estamos examinando a sintaxe do Solidity , incluindo tipos de dados e suas funções, seja você um iniciante ou um desenvolvedor experiente procurando aprimorar suas habilidades no Solidity, continue lendo para aprender sobre os blocos de construção da sintaxe do Solidity.
Assim como qualquer linguagem de programação, o Solidity tem sua própria sintaxe e um conjunto de regras que devem ser seguidas para escrever um código correto e eficaz. Se você é novo no Solidity, aprender a sintaxe básica da linguagem é um primeiro passo essencial.
Sintaxe Solidity
Um arquivo fonte do Solidity pode conter um grande número de definições de contrato, diretivas de importação e diretivas pragma, tudo ao mesmo tempo.
Vamos começar dando uma olhada em um arquivo fonte simples do Solidity.
Um exemplo de um arquivo Solidity pode ser encontrado abaixo:
Solidity Syntax Example: 1
Solidity Pragma
Há uma diretiva pragma que especifica que o código-fonte foi escrito para o Solidity versão 0.4.0 ou qualquer versão mais recente sem quebrar a funcionalidade até, mas excluindo, a versão 0.6.0.
As diretivas pragmáticas são sempre locais para o arquivo de origem, portanto, não serão aplicadas automaticamente ao arquivo importado.
Considerando que um arquivo que não pode ser compilado antes da versão 0.4.0 também não poderá ser compilado por um compilador a partir da versão 0.5.0, um pragma para tal arquivo será escrito da seguinte forma:
pragma solidity ^0.4.0;
Neste caso, adicionamos uma segunda condição usando o símbolo ^.
Contrato de Solidez
Os contratos Solidity contêm código (suas funções) e dados (seu estado) que residem em endereços específicos na blockchain Ethereum.
Na linha ample, uma variável uint chamada ample é declarada e seu valor pode ser modificado ou recuperado usando os métodos set e get.
Importing Files
Apesar do fato de que o exemplo acima carece de uma instrução de importação, o Solidity oferece suporte a instruções de importação que se assemelham a instruções de importação do JavaScript.
Todos os símbolos globais são importados do nome do arquivo na instrução a seguir.
import "filename";
Aqui está um exemplo de criação de um símbolo global symbolName que contém todos os símbolos globais do nome do arquivo.
import * as symbolName from "filename";
A importação de um arquivo x do mesmo diretório do arquivo atual é feita usando import “./x” como x;. Importe “x” pois x se referirá a um arquivo específico; em vez disso, um “diretório de inclusão” global fará referência a um arquivo diferente.
Palavras-chave Reservadas de Solidez
Uma lista de palavras-chave reservadas do Solidity pode ser encontrada abaixo:
Palavras-chave | Visão geral |
abstrato | Esta palavra-chave é usada para declarar contratos ou funções abstratas. Um contrato ou função abstrata deve ser implementado por um contrato filho ou resultará em um erro de compilação. |
depois | Essa palavra-chave é usada para especificar um atraso de tempo após o qual uma função ou instrução deve ser executada. |
pseudônimo | Esta palavra-chave é usada para criar um novo nome para um tipo de dado ou variável. |
aplicar | Esta palavra-chave é usada no contexto de uma carteira multiassinatura para aplicar uma transação ou mensagem a um contrato ou conta. |
auto | Esta palavra-chave é usada para declarar variáveis locais com duração de armazenamento automática. |
caso | Essa palavra-chave é usada em instruções switch para especificar a ação a ser executada para um caso específico. |
pegar | Essa palavra-chave é usada em instruções try-catch para lidar com erros ou exceções que ocorrem durante a execução do programa. |
cópia de | Esta palavra-chave é usada para criar uma cópia de uma matriz ou uma variável de armazenamento. |
padrão | Essa palavra-chave é usada em instruções switch para especificar a ação a ser executada se nenhum outro case corresponder. |
definir | Esta palavra-chave é usada para criar uma macro ou um valor constante que pode ser usado em todo o programa. |
final | Esta palavra-chave é usada para indicar que um contrato ou função não pode ser substituído por um contrato filho. |
imutável | Esta palavra-chave é usada para declarar variáveis que não podem ser alteradas após a inicialização. |
implementos | Esta palavra-chave é usada para indicar que um contrato implementa uma interface específica. |
em | Essa palavra-chave é usada em loops for para especificar o intervalo de valores para iterar. |
em linha | Esta palavra-chave é usada para indicar que uma função deve ser incorporada em tempo de compilação. |
deixar | Esta palavra-chave é usada para declarar variáveis com escopo de bloco. |
macro | Esta palavra-chave é usada para definir uma macro ou um valor constante que pode ser usado em todo o programa. |
corresponder | Essa palavra-chave é usada em instruções switch para corresponder um valor a um caso específico. |
mutável | Esta palavra-chave é usada para declarar variáveis que podem ser alteradas após a inicialização. |
nulo | Esta palavra-chave é usada para indicar a ausência de um valor. |
de | Essa palavra-chave é usada em loops for para especificar o tipo de elemento a ser iterado. |
sobrepor | Esta palavra-chave é usada para indicar que uma função se destina a substituir uma função com o mesmo nome no contrato pai. |
parcial | Esta palavra-chave é usada para indicar que um contrato é definido em vários arquivos. |
promessa | Esta palavra-chave é usada para indicar que uma função retorna uma promessa ou um valor futuro. |
referência | Esta palavra-chave é usada para declarar variáveis de referência que se referem a outras variáveis. |
relocável | Esta palavra-chave é usada para indicar que um contrato ou função pode ser movido para um local diferente na memória. |
selado | Esta palavra-chave é usada para indicar que um contrato ou função não pode ser estendido ou substituído. |
tamanho de | Esta palavra-chave é usada para obter o tamanho de um tipo de dados ou uma variável em bytes. |
estático | Essa palavra-chave é usada para declarar variáveis ou funções de classe que são compartilhadas em todas as instâncias da classe. |
apoia | Esta palavra-chave é usada para verificar se um contrato suporta uma interface específica. |
trocar | Esta palavra-chave é usada para especificar uma instrução de ramificação multidirecional. |
tentar | Essa palavra-chave é usada para especificar um bloco de código que pode lançar uma exceção e deve ser tratado usando catch. |
typedef | Esta palavra-chave é usada para definir um novo tipo de dados. |
tipo de | Esta palavra-chave é usada para obter o tipo de um valor em tempo de execução. |
desmarcado | Esta palavra-chave é usada para desabilitar verificações de alcance e outros recursos de segurança para melhorar o desempenho. |
entender a sintaxe do Solidity é essencial para escrever contratos inteligentes na blockchain Ethereum.
Embora a linguagem possa ser complexa, dominar as várias palavras-chave, tipos de dados e funções pode levar à criação de contratos inteligentes poderosos e seguros .
Agora que você se familiarizou com a sintaxe do Solidity, é hora de aprender como escrever seu primeiro programa do Solidity .