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 означает «объясни», а следующий аргумент — код. Не все ошибки имеют такой номер.
Есть три разные ситуации. Код не собирается — исправляем нарушение правил. Программа начала работать и завершилась с ошибкой — исследуем вход и условия выполнения. Программа успешно закончила, но показала неверный ответ — сверяем её логику с задачей. Последние два случая не исправляются одной заменой опечаток.
Опорная карта
Прочитать → найти файл и строку → понять причину → изменить одно место → проверить → запустить → сверить результат.
Разминка
- Предскажите: можно ли получить неверный текст без ошибки сборки?
- Заполните: сообщение Compiling печатает ___, а наша строка — ___.
- Почините printline!, вернув известное имя println!.
Задание
Обязательное. Исправьте опечатку и измените текст на «Готово». Выполните check, затем run. Ожидаемый результат: успешная проверка и строка «Готово».
На своих данных. Сделайте опечатку только внутри выводимого текста. Убедитесь, что проверка синтаксиса не знает, какое слово вы хотели написать.
Подсказка и эталон
Полный эталон приведён ниже. Макрос пишется println!, но текст внутри кавычек выбираете вы. Для вопроса о проблеме сообщайте команду, ОС, версию, полный текст ошибки и минимальный пример. Не отправляйте секреты и не заменяйте сообщение словами «не работает».
Сверка после самостоятельной попытки
Неверный текст может успешно скомпилироваться; Compiling выводит Cargo; правильное имя — println!.
fn main() {
println!("Готово");
}
Ожидаемый вывод эталона:
Готово
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.