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