O que são funções Solidity?
Escrito por Alchemy
Existem vários tipos de funções em Solidity, incluindo view functions, pure functions, funções especiais e fallback functions. As funções também podem ser modificadas com um atributo de visibilidade de função: public, external, internal e private. Este artigo apresentará os tipos de funções em Solidity, sua sintaxe, como ler funções e a visibilidade.
O que são funções em Solidity?
Funções em Solidity são módulos de código autocontidos que realizam uma tarefa específica. Assim como outras linguagens de programação web3, Solidity permite que o desenvolvedor escreva código modular usando funções para eliminar a redundância de reescrever o mesmo trecho de código. Em vez disso, os devs podem chamar uma função no programa quando necessário.
Como escrever e ler uma função em Solidity
Para escrever uma função em Solidity, os desenvolvedores precisam estruturá-la de acordo com sua sintaxe adequada, garantindo que os componentes básicos estejam presentes para que a função possa executar corretamente.
Sintaxe de função em Solidity
Use a sintaxe a seguir para criar sua função em Solidity, como mostrado no exemplo abaixo:
- Defina a função com a palavra-chave function
- Crie um nome para a função, que seja único e não coincida com nenhuma das palavras-chave reservadas
- Liste quaisquer parâmetros contendo o nome e o tipo de dado do parâmetro, ou não inclua parâmetros extras
- Crie um bloco de instruções cercado por chaves
Nota: eventos em Solidity são declarados como funções. Eventos e funções são ambos essenciais para o trabalho de alto nível em dApps.
A imagem abaixo mostra os três componentes principais de uma função em Solidity:
- Nome da função
- Tipo da função
- Tipos de retorno

Quais são os diferentes tipos de funções em Solidity?
Existem vários tipos de funções em Solidity que abordaremos nesta seção, incluindo view functions, pure functions, funções especiais e fallback functions.
1. View functions
Em Solidity, view functions são somente leitura e não podem alterar as variáveis de estado definidas em um smart contract. A sintaxe de uma view function é a seguinte:
2. Pure functions
Uma pure function declara que nenhuma variável de estado será alterada ou lida. Normalmente, pure functions servem para algum utilitário ou cálculo comum. A sintaxe de uma pure function é a seguinte:
3. Funções especiais
Solidity tem algumas funções especiais que você pode usar ao desenvolver um smart contract. Getter e receive functions são funções payable importantes para smart contracts em Solidity.
Getter function
Variáveis de estado definidas como public têm uma getter function que é criada automaticamente pelo compilador. A função tem o mesmo nome da variável e possui visibilidade external.
Receive ether function
Um contrato pode ter no máximo uma receive function. Uma receive function não pode ter argumentos, não é capaz de retornar valores e deve ter visibilidade external e mutabilidade de estado payable.
Uma receive function é executada quando uma chamada ao contrato envia Ether e não especifica nenhuma função. Essa função é declarada da seguinte forma:
4. Fallback function
Em Solidity, uma fallback function é uma função external sem nome, argumentos ou valores de retorno. Fallback functions são executadas quando um identificador de função não corresponde a nenhuma das funções disponíveis em um smart contract, ou se nenhum dado foi fornecido junto com a chamada da função.
O que é sobrecarga de função (function overloading)?
A sobrecarga de função ocorre quando você tem múltiplas definições para o mesmo nome de função dentro do mesmo escopo. A definição da função deve diferir uma da outra pelos tipos e/ou pelo número de argumentos na lista de argumentos. Você não pode sobrecarregar declarações de função que diferem apenas pelo tipo de retorno.
Como o Vyper lida com a sobrecarga de função de forma diferente do Solidity?
Diferente do Solidity, o Vyper, uma linguagem pythonic baseada em Solidity, não permite sobrecarga de função. Tentar fazer sobrecarga de função no Vyper resultará em um erro de "Duplicate function or event name".
O que significa visibilidade de função?
Especificar a visibilidade de função nos permite controlar quais entidades podem chamar funções dentro do smart contract. Existem três tipos de chamadores:
- O contrato principal
- Um contrato derivado (ou seja, que herda) do contrato principal
- Um terceiro
A visibilidade de função ajuda você a controlar qual dos chamadores acima pode executar a função. Existem quatro tipos de visibilidade de função:
- Public
- External
- Internal
- Private
A acessibilidade das funções diminui de External para Private: funções public são as mais acessíveis e funções private são as menos acessíveis.
External vs. public
External e public são as duas visibilidades de função que podem ser chamadas de fora do contrato em que são definidas. External significa que a função pode ser chamada exclusivamente por outros contratos ou por Externally Owned Accounts (EOA). Public significa que a função pode ser chamada externamente ou de dentro do próprio contrato.
Internal vs. private
Ao contrário de external e public, internal e private impedem que partes externas acessem a função. Para uma função private, apenas funções dentro do mesmo contrato podem chamá-la. Para uma função internal, funções dentro do mesmo contrato ou funções dentro de contratos derivados podem chamá-la.
Continue aprendendo sobre funções em Solidity
Este artigo apresentou a você as funções em Solidity. Para continuar aprendendo, inscreva-se no Ethereum Developer Bootcamp da Alchemy University para ter acesso a um curso intensivo gratuito e assíncrono de Solidity com duração de 7 semanas. Se os desenvolvedores forem novos no desenvolvimento em geral, o curso intensivo de JavaScript de 3 semanas da Alchemy University é um ótimo pré-requisito antes de iniciar um bootcamp de Ethereum.
Visões gerais relacionadas
Solidity3 de dezembro de 2025
As 6 melhores IDEs de Solidity para desenvolvedores (2026)
Conheça as melhores IDEs para desenvolvimento em Solidity.
Solidity19 de novembro de 2025
Otimização de gas em Solidity: 12 técnicas para deixar seus smart contracts mais baratos e eficientes
Quer escrever código melhor e reduzir suas taxas de gas?
Solidity13 de novembro de 2025
12 boas práticas de segurança para smart contracts em Solidity
Proteja seus smart contracts com essas dicas e ferramentas de segurança de especialistas.

Construa magia blockchain
A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.