Функции в языке Carbon играют ту же роль, что и в C, Php или любом другом функциональном языке. Она используется для разделения функциональности для повторного использования. Например, функция для сложения двух чисел.
Введение
Структура функции выглядит следующим образом
fn имя_функции (параметры) -> возвращаемый_тип {}
Здесь:
- fn - указывает, что данная структура является функцией.
- имя_функции - имя вашей функции.
- параметры - список параметров через запятую с указанием их типов.
- возвращаемый_тип - тип данных значения, которое вернет функция. Пропустите его, если функция ничего не возвращает.
Пример
fn multiply (x: i32, y: i32) -> i64 {
return x * y;
}
Здесь мы создали функцию для умножения двух 32-битных целых чисел, в результате чего получается 64-битное целое число. Таким образом, возвращаемый тип - i64.
Рассмотрим другой пример:
package Sorting api;
fn Partition[T:! Comparable & Movable](s: Slice(T))
-> i64 {
var i: i64 = -1;
for (e: T in s) {
if (e <= s.Last()) {
++i;
Swap(&s[i], &e);
}
}
return i;
}
fn QuickSort[T:! Comparable & Movable](s: Slice(T)) {
if (s.Size() <= 1) {
return;
}
let p: i64 = Partition(s);
QuickSort(s[:p - 1]);
QuickSort(s[p + 1:]);
}
Данный пример представляет собой реализацию алгоритма QuickSort.