Результат: вы создадите файл .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 version
Topaz 5.11.0Для первой программы не нужно клонировать репозиторий, создавать манифест пакета или устанавливать Rust и Python.
Если вы работаете в VS Code или редакторе, совместимом с Open VSX, установите
официальное расширение Топаза из
Visual Studio Marketplace
или Open VSX Registry.
Расширение распознаёт файлы .tpz, показывает значок Топаза и подсвечивает
синтаксис. Диагностику по-прежнему выдаёт topaz check.
Запишите самый маленький учебный план
Создайте first-program.tpz с точным содержимым:
let topic = "Topaz basics"
let minutes: int = 25
print("{topic}: {minutes} minutes")Сначала проверьте исходник, затем запустите его:
topaz check first-program.tpz
topaz run first-program.tpz
check проверяет файл без выполнения и сообщает результат:
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 topic = "Topaz basics"
let minutes: int = "25"
print("{topic}: {minutes} minutes")Выполните:
topaz check first-program-error.tpz
Проверяющий не запускает файл. Он показывает объявленный тип, найденный тип и точный фрагмент исходника:
error[TPZ5001]: expected `int`, found `string`
--> first-program-error.tpz:2:20
|
2 | let minutes: 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 пропускает.
Попробуйте
Замените topic на "Functions", а minutes на 30. Что напечатает программа?
Показать ответ
Она напечатает Functions: 30 minutes. Оба значения по-прежнему соответствуют выведенному string и объявленному int, поэтому перед запуском topaz check first-program.tpz также завершится успешно.
Готовы двигаться дальше, если
Вы умеете создать файл .tpz, выполнить topaz check и topaz run, а также исправить значение по ожидаемому и найденному типам и выделенному фрагменту исходника.
Переходите к Значениям и функциям. Для быстрой подсказки по форме записи используйте Краткий обзор синтаксиса.