Функції

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