3. Funções

Funções são usadas para encapsular trechos de código para serem chamados/invocados sempre que necessário, evitando assim a necessidade de reescreve-los.

# Algumas definições

  • Possuem uma palavra chave de definição.
  • Um nome para ser invocada.
  • Podem receber parâmetros externos.
  • Possuem um parâmetro de visibilidade.
  • Possuem um identificador de estado.
  • Podem receber modificadores.
  • Podem ser pagáveis (receber eth/cripto).
  • Podem ou não retornar dados.

# O corpo de uma função

Essa estrutura pode variar, dependendo do contexto dessa função algumas palavras-chave estarão implícitas por padrão da linguagem.

# Parâmetros

Funções podem receber parâmetros externos, veja a função abaixo.

Por enquanto preste atenção somente nos parâmetros dentro dos parêntesis (uint a , uint b). Esse trecho de código indica que essa função recebe dois números, um está na variável 'a' e outro está na variável 'b'.

# Sem parâmetros

Funções também podem funcionar sem parâmetros externos, como é o caso dessa função à baixo que somente retorna o número do bloco atual.

# Visibilidade

Parâmetros de visibilidade definem como essa função poderá ser acessada.

# Estados

Quando uma função é executa ela pode ou não alterar dados que estão guardados na blockchain. Para cada caso à uma palavra chave que define as permissões e possibilidades dessa função.

pure é bastante usado para fazer cálculos e retornar resultados.

# Modificadores

Há muitos casos de uso para modificadores mas um dos mais comuns é definir permissões e restrições no contrato para que somente o administrador possa fazer algumas coisas.

Nesse caso temos uma função chamada somenteAdminAlteraIdade que só poderá ser executada se o modificador somenteadm retornar um valor true. Esse modificador verifica se o endereço que chamou o contrato é o endereço administrador, se sim irá retornar true e a função será executada.

# Funções pagáveis (Payable)

Algumas funções podem receber eth e outros tokens e para isso devem levar a palavra chave payable.

Funções com parâmetro de estado view não podem ser pagáveis.

# Return e Returns

Para que uma função retorne algum dado é preciso especificar o tipo de dado que será retornado, isso é feito através do parâmetro returns é diferente da palavra chave return que é usada para retornar o dado efetivamente.

Last Updated: 08/10/2022 22:55:37