Функции
Вы узнаете
Два способа записать сигнатуру функции в t27 и тело с return.
fn add(a: u8, b: u8) -> u8 объявляет функцию с двумя входами u8 и результатом u8; тело в фигурных скобках заканчивается return. Компилятор принимает и стиль Zig, pub fn add(a: u8, b: u8) u8, без стрелки. Обобщений нет: fn id<T> — ошибка разбора. Тестовый прогон этого сайта проверяет константы и не вызывает функции, поэтому урок держит ожидаемые результаты константами рядом с ними.
Попробуйте
Напишите в плеере функцию sub в любом из двух стилей и проверьте, что вердикт чистый.

The pieces of a t27 function signature in both styles the compiler accepts, and the generics it does not. Lesson 12 of the t27 basics course.
specs/basics/12_functions.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 12: Functions.
; A function takes typed inputs and returns a typed result.
module basics_12_functions;
pub fn add(a: u8, b: u8) -> u8 {
return a + b;
}
pub fn twice(a: u8) u8 {
return a + a;
}
pub const TWO_PLUS_THREE : u8 = 5;
test results_are_kept_as_constants {
assert TWO_PLUS_THREE == 2 + 3;
}
Все уроки
Модуль 1 · Файл спеки
Что лежит в файле .t27: строка module, строки прозы и комментарии.
Модуль 2 · Значения и типы
Константы, ширина целого числа, а также true, false и текст.
Модуль 3 · Массивы, триты и выражения
Списки значений, три значения трита и что вычисляют операторы.
Модуль 4 · Тесты и функции
Блок test, несколько маленьких тестов в одной спеке и функция с типизированными входами.
Модуль 5 · Внутри функции
Имена через let и var, выбор через if и switch и циклы.
Модуль 6 · Видимость и свои типы
Что pub открывает другим модулям, и структуры и перечисления, которые вы объявляете.
Модуль 7 · Модули, правила и gen-ts
Чтение другого модуля, правило, которое выполняется всегда, и спека, превращённая в TypeScript.
Модуль 8 · Компилятор и tri
Бэкенды, которые пишет t27c, стадии, в которых он читает спеку, и команда tri.
Модуль 9 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.