Функції
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.
- Параметри оголошення супроводжуються типом (у зворотному порядку порівняно з деякими мовами програмування), а потім типом повернення.
- Останній вираз у тілі функції (або будь-якого блоку) стає значенням, що повертається. Просто опустіть
;
в кінці виразу. Ключове словоreturn
можна використовувати для дострокового повернення, але форма "голого значення" є ідіоматичною у кінці функції (рефакторgcd
щоб використовуватиreturn
). - Деякі функції не мають значення, що повертається, і повертають 'тип агрегату',
()
. Компілятор визначить це, якщо тип повернення пропущено. - Перевантаження не підтримується - кожна функція має єдину реалізацію.
- Завжди приймає фіксовану кількість параметрів. Аргументи за замовчуванням не підтримуються. Для підтримки варіаційних функцій можна використовувати макроси.
- Завжди приймає єдиний набір типів параметрів. Ці типи можуть бути загальними, що буде розглянуто пізніше.