Изучение Топаза

Первая программа

Установите Топаз, проверьте и запустите один файл планировщика, затем исправьте несовпадение типов по статической диагностике.

Результат: вы создадите файл .tpz, проверите его до выполнения, запустите и исправите одну ошибку по указанному диагностикой месту в исходнике.

Что нужно знать: выберите отправную точку в Учебном маршруте; для точного повторения команд ниже нужен локальный терминал.

Установите команду

В macOS или Linux:

BASH
curl -fsSL https://topaz.ooo/install.sh | sh

В Windows PowerShell:

POWERSHELL
irm https://topaz.ooo/install.ps1 | iex

Если Node уже установлен:

BASH
npm install -g topaz-lang

Проверьте установленный продукт:

BASH
topaz version
Вывод
Topaz 5.11.0

Для первой программы не нужно клонировать репозиторий, создавать манифест пакета или устанавливать Rust и Python.

Если вы работаете в VS Code или редакторе, совместимом с Open VSX, установите официальное расширение Топаза из Visual Studio Marketplace или Open VSX Registry. Расширение распознаёт файлы .tpz, показывает значок Топаза и подсвечивает синтаксис. Диагностику по-прежнему выдаёт topaz check.

Запишите самый маленький учебный план

Создайте first-program.tpz с точным содержимым:

TOPAZ
let topic = "Topaz basics"
let minutes: int = 25
print("{topic}: {minutes} minutes")

Сначала проверьте исходник, затем запустите его:

BASH
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")

Выполните:

BASH
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, а также исправить значение по ожидаемому и найденному типам и выделенному фрагменту исходника.

Переходите к Значениям и функциям. Для быстрой подсказки по форме записи используйте Краткий обзор синтаксиса.