Найти в Дзене
Hello, World!

Функции в языке Carbon

Оглавление

Функции в языке 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.