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

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

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

Эта страница описывает Топаз v5.17. Прежде чем считать её актуальной, сверьте поле version в /version.json со значением 5.17.

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

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