Результат: вы создадите файл .tpz, проверите его перед выполнением, запустите и исправите ошибку по указанному диагностикой месту в исходном коде.
Что нужно знать: выберите начальную точку в учебном маршруте. Для точного выполнения приведённых ниже команд потребуется локальный терминал.
Установите команду
В macOS или Linux:
curl -fsSL https://topaz.ooo/install.sh | shВ Windows PowerShell:
irm https://topaz.ooo/install.ps1 | iexЕсли Node уже установлен:
npm install -g topaz-langПроверьте установленный продукт:
topaz versionTopaz 5.19.0Для первой программы не требуется клонировать репозиторий, создавать манифест пакета или устанавливать Rust и Python.
Если вы работаете в VS Code или редакторе с поддержкой Open VSX, установите официальное расширение Топаза из Visual Studio Marketplace или Open VSX Registry. Расширение распознаёт файлы .tpz, отображает значок Топаза и подсвечивает синтаксис. Оно также запускает установленный topaz lsp для показа диагностики в редакторе. Компилятор не входит в состав расширения, поэтому установленный Топаз должен быть доступен через переменную PATH или указан в topaz.executablePath. Команду topaz check можно по-прежнему запускать непосредственно в терминале.
Запишите самый маленький учебный план
Создайте first-program.tpz со следующим содержимым:
let тема = "Topaz basics"
let минуты: int = 25
print("{тема}: {минуты} minutes")Сначала проверьте исходный код, затем запустите его:
topaz check first-program.tpz
topaz run first-program.tpzcheck проверяет файл без выполнения и выводит результат:
first-program.tpz: types-ok (1 module)
first-program.tpz: resolve-ok (1 module)run выполняет ту же статическую проверку, после чего выводит:
Topaz basics: 25 minutesЧитайте программу в том же порядке, в котором видите результат. Первый let связывает имя со строкой, а анализатор выводит её тип. Во второй привязке тип int указан явно, поэтому анализатор подтверждает, что 25 является целым числом. print вычисляет выражения внутри {...} и выводит одну строку.
Прочитайте и исправьте диагностику
Создайте отдельный файл first-program-error.tpz. Этот исходный код намеренно содержит ошибку, поэтому он приведён как обычный текст, а не как исполняемый пример на Топазе:
let тема = "Topaz basics"
let минуты: int = "25"
print("{тема}: {минуты} minutes")Выполните:
topaz check first-program-error.tpzАнализатор не запускает файл. Он показывает объявленный тип, найденный тип и точное место в исходном коде:
error[TPZ5001]: expected `int`, found `string`
--> first-program-error.tpz:2:19
|
2 | let минуты: int = "25"
| ^^^^
first-program-error.tpz: 1 type diagnosticЗамените выделенное "25" на 25. Теперь topaz check first-program-error.tpz завершается успешно, а topaz run first-program-error.tpz выводит ту же строку, что и корректная программа выше.
Выбор: check или run?
Во время редактирования используйте topaz check. Команда быстро определяет корректность исходного кода без запуска программы. topaz run выполняет ту же статическую проверку, а затем демонстрирует поведение программы. Отдельный вызов check представляет собой быстрый этап проверки без выполнения, а не дополнительную проверку, пропускаемую при run.
Попробуйте
Замените тема на "Functions", а минуты на 30. Что выведет программа?
Показать ответ
Программа выведет Functions: 30 minutes. Оба значения соответствуют выведенному типу string и объявленному int, поэтому перед запуском команда topaz check first-program.tpz также завершится успешно.
Готовы двигаться дальше, если
Вы умеете создавать файл .tpz, выполнять topaz check и topaz run, а также исправлять значения на основе ожидаемого и найденного типов по выделенному фрагменту исходного кода.
Переходите к разделу Значения и функции. Для быстрого ознакомления с синтаксисом используйте Краткий обзор синтаксиса.