Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Функции

// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0

fn gcd(a: u32, b: u32) -> u32 {
    if b > 0 { gcd(b, a % b) } else { a }
}

fn main() {
    dbg!(gcd(143, 52));
}
This slide should take about 3 minutes.
  • В объявлении функции за каждым параметром следует его тип (в отличие от некоторых языков программирования), затем тип возвращаемого значения.
  • Последнее выражение в теле функции (или любого блока) становится возвращаемым значением. Просто опустите ; в конце выражения. Ключевое слово return можно использовать для раннего возврата, но форма «голого значения» идиоматична в конце функции (перепишите gcd с использованием return).
  • Некоторые функции не возвращают значения и возвращают «тип unit» (). Компилятор выведет это, если возвращаемый тип не указан.
  • Перегрузка не поддерживается: каждая функция имеет единственную реализацию.
    • Функция всегда принимает фиксированное количество параметров. Аргументы по умолчанию не поддерживаются. Для функций с переменным числом аргументов можно использовать макросы.
    • Всегда принимает один набор типов параметров. Эти типы могут быть обобщёнными; об этом поговорим позже.