Shanraq.org Shanraq.org
Ошибки как подсказки
IT

Rust: с нуля до своего органайзера Урок 8 из 10

Ошибки как подсказки

Урок 8. Исправить опечатку и ошибку замысла разными способами.

Текст переведён с помощью ИИ.

Предварительно: уроки 1–7.

Зачем это нужно

Диагностика — сообщение инструмента о найденной проблеме. Это указатель места ремонта, не оценка способностей ученика. Ошибка мешает текущему действию завершиться; предупреждение обычно не мешает сборке, но указывает, что стоит проверить.

Сразу целиком

Правильный src/main.rs для этого шага:

fn main() {
    println!("Задача: изучить Rust");
}

Вывод программы:

Задача: изучить Rust

Теперь намеренно ошибочный пример. В отдельной временной копии main.rs замените println! на printline! и выполните cargo check. Ожидается отказ сборки, а не вывод программы:

fn main() {
    printline!("Задача: изучить Rust");
}

Ожидаемый фрагмент диагностики: cannot find macro. Это означает «макрос не найден»: имени printline в нашем примере нет. Полные пути, номера строк и оформление зависят от версии инструментов; они не обязаны совпасть с чужим снимком экрана.

Как читать сообщение

Найдите имя файла src/main.rs, номер строки и указатель на проблемное место. Прочитайте первое существенное сообщение. Показанное место может быть следствием более ранней пропущенной кавычки, поэтому посмотрите и строкой выше. После исправления повторите проверку.

Код ошибки вроде E0384 — устойчивый идентификатор некоторых диагностик. Для него rustc –explain E0384 показывает подробное объяснение; –explain означает «объясни», а следующий аргумент — код. Не все ошибки имеют такой номер.

Есть три разные ситуации. Код не собирается — исправляем нарушение правил. Программа начала работать и завершилась с ошибкой — исследуем вход и условия выполнения. Программа успешно закончила, но показала неверный ответ — сверяем её логику с задачей. Последние два случая не исправляются одной заменой опечаток.

Опорная карта

Прочитать → найти файл и строку → понять причину → изменить одно место → проверить → запустить → сверить результат.

Разминка

  1. Предскажите: можно ли получить неверный текст без ошибки сборки?
  2. Заполните: сообщение Compiling печатает ___, а наша строка — ___.
  3. Почините printline!, вернув известное имя println!.

Задание

Обязательное. Исправьте опечатку и измените текст на «Готово». Выполните check, затем run. Ожидаемый результат: успешная проверка и строка «Готово».

На своих данных. Сделайте опечатку только внутри выводимого текста. Убедитесь, что проверка синтаксиса не знает, какое слово вы хотели написать.

Подсказка и эталон

Полный эталон приведён ниже. Макрос пишется println!, но текст внутри кавычек выбираете вы. Для вопроса о проблеме сообщайте команду, ОС, версию, полный текст ошибки и минимальный пример. Не отправляйте секреты и не заменяйте сообщение словами «не работает».

Сверка после самостоятельной попытки

Неверный текст может успешно скомпилироваться; Compiling выводит Cargo; правильное имя — println!.

fn main() {
    println!("Готово");
}

Ожидаемый вывод эталона:

Готово

Предыдущий урок · Оглавление · Следующий урок

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Комментарии (0)

Пока нет комментариев. Будьте первым.