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)