Solidez - Sintaxe Básica
Os arquivos fonte do Solidity podem conter qualquer número de definições de contrato, diretivas de importação e diretivas pragma.
Vamos começar com um arquivo fonte simples de Solidity. A seguir está um exemplo de um arquivo Solidity -
pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
Pragma
A primeira linha é uma diretiva pragma que informa que o código-fonte foi escrito para a versão 0.4.0 do Solidity ou qualquer coisa mais recente que não interrompa a funcionalidade até, mas não incluindo, a versão 0.6.0.
Uma diretiva pragma é sempre local para um arquivo de origem e se você importar outro arquivo, o pragma desse arquivo não se aplicará automaticamente ao arquivo de importação.
Portanto, um pragma para um arquivo que não será compilado antes da versão 0.4.0 e também não funcionará em um compilador a partir da versão 0.5.0 será escrito da seguinte forma -
pragma solidity ^0.4.0;
Aqui, a segunda condição é adicionada usando ^.
Contrato
Um contrato Solidity é uma coleção de código (suas funções) e dados (seu estado) que reside em um endereço específico no Ethereumblockchain.
A linha uintstoredData declara uma variável de estado chamada storedData do tipo uint e as funções set e get podem ser usadas para modificar ou recuperar o valor da variável.
Importando arquivos
Embora o exemplo acima não tenha uma instrução de importação, o Solidity oferece suporte a instruções de importação que são muito semelhantes às disponíveis em JavaScript.
A instrução a seguir importa todos os símbolos globais de "nome do arquivo".
import "filename";
O exemplo a seguir cria um novo símbolo global symbolName cujos membros são todos os símbolos globais de "filename".
import * as symbolName from "filename";
Para importar um arquivo x do mesmo diretório do arquivo atual, use import "./x" as x ;. Se você usar importar "x" como x; em vez disso, um arquivo diferente pode ser referenciado em um "diretório de inclusão" global.
Palavras-chave reservadas
A seguir estão as palavras-chave reservadas no Solidity -
abstrato | depois de | apelido | Aplique |
auto | caso | pegar | cópia de |
padrão | definir | final | imutável |
implementos | dentro | na linha | deixei |
macro | partida | mutável | nulo |
do | sobrepor | parcial | promessa |
referência | relocável | selado | tamanho de |
estático | apoia | interruptor | experimentar |
typedef | tipo de | não verificado |