Funções são prevalentes no código Rust. Você já viu uma das funções mais importantes na linguagem: a função `main`, que é o ponto de entrada de muitos programas. Você também já viu a palavra-chave `fn`, que permite declarar novas funções. O código Rust usa _snake case_ como o estilo convencional para nomes de funções e variáveis, no qual todas as letras são minúsculas e sublinhados separam as palavras. Aqui está um programa que contém uma definição de função de exemplo: Nome do arquivo: src/main.rs ```rust fn main() { println!("Hello, world!"); another_function(); } fn another_function() { println!("Another function."); } ``` Em assinaturas de função, você _deve_ declarar o tipo de cada parâmetro. Esta é uma decisão deliberada no design do Rust: exigir anotações de tipo em definições de função significa que o compilador quase nunca precisa que você as use em outro lugar no código para descobrir qual tipo você quer dizer. O compilador também é capaz de fornecer mensagens de erro mais úteis se souber quais tipos a função espera. **:: Referência ::** [Funções - A Linguagem de Programação Rust](https://doc.rust-lang.org/book/ch03-03-how-functions-work.html) **:: Referência ::** [27: Ownership is cool in Rust](https://www.youtube.com/watch?v=FHNESx9S7ZM)