Начало работы

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

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

Результат: вы создадите файл .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.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 со следующим содержимым:

TOPAZ
let тема = "Topaz basics"
let минуты: int = 25
print("{тема}: {минуты} 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 тема = "Topaz basics"
let минуты: int = "25"
print("{тема}: {минуты} minutes")

Выполните:

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

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