Учебник по шагам
Этот учебник ведёт от первой переменной до небольшого сервиса. В отличие от тура, где каждая страница показывает возможности «в сжатом виде», здесь каждый шаг построен одинаково:
- Зачем — какую проблему решает возможность и почему язык устроен именно так;
- Пример — полная программа, которую можно вставить в файл и запустить:
oxl run файл.oxl; - Вывод — что программа печатает (блок «Вывод» проверяется при каждой сборке сайта вместе с самим кодом);
- Разбор — по строкам, что произошло;
- Типичная ошибка — короткая программа, которая не компилируется, и диагностика компилятора с ссылкой на её описание.
Чтобы пробовать примеры, достаточно установленного oxl (установка). Каждый пример — один файл; кроме шага 9
(модули и пакеты) проекты создавать не нужно.
oxl run step.oxl # собрать и выполнить
oxl check step.oxl # только проверить типы, без запуска
oxl fmt step.oxl # привести к каноническому виду| Шаг | Тема | Главная мысль |
|---|---|---|
| 1. Переменные и типы | let, var, числа, строки, T? | по умолчанию всё неизменяемо |
| 2. Функции | параметры, значения по умолчанию, замыкания | последнее выражение — результат |
| 3. Данные: data и enum | записи, варианты, методы в impl | тип описывает допустимые состояния |
| 4. Сопоставление с образцом | match, if let, объединения A | B | компилятор проверяет, что вы учли всё |
| 5. Ошибки | @error, fail, ?, цепочки -> | ошибка — часть сигнатуры |
| 6. Коллекции и итераторы | List, Map, Set, iter, запросы | ленивые конвейеры |
| 7. Владение и заимствование | перемещение, &, &var, clone | безопасность памяти без сборщика мусора |
| 8. Эффекты | pure, io, time, net, db | сигнатура говорит, что функция делает |
| 9. Модули и пакеты | use, pub, oxl.toml | граница видимости — модуль |
| 10. Тесты | test, assert_eq, таблицы, фаззинг | тест — объявление языка |
| 11. Конкурентность | scope, задачи, каналы, select, акторы | структурная конкурентность |
| 12. Маленький сервис | service, rpc, actor, cluster | один код — в процессе и по сети |
После учебника переходите к кулинарной книге примеров, к туру по распределённым возможностям (кластер, саги, развёртывание) и к Стандарту за точными правилами.