Funções
fn gcd(a: u32, b: u32) -> u32 { if b > 0 { gcd(b, a % b) } else { a } } fn main() { println!("gcd: {}", gcd(143, 52)); }
This slide should take about 3 minutes.
- Os parâmetros de declaração são seguidos por um tipo (o inverso de algumas linguagens de programação) e, em seguida, um tipo de retorno.
- A última expressão em um corpo de uma função (ou qualquer bloco) torna-se o valor de retorno. Simplesmente omita o
;
no final da expressão. A palavra-chavereturn
pode ser usada para retorno antecipado, mas a forma "valor nu" é idiomática no final de uma função (refatoregcd
para usar umreturn
). - Algumas funções não têm valor de retorno e retornam o 'tipo unitário',
()
. O compilador irá inferir isso se o tipo de retorno-> ()
for omitido. - Sobrecarga não é suportada - cada função tem uma única implementação.
- Sempre usa um número fixo de parâmetros. Argumentos padrão não são suportados. Macros podem ser usadas para suportar funções variádicas.
- Sempre usa um único conjunto de tipos de parâmetros. Estes tipos podem ser genéricos, o que será abordado mais tarde.