Найти тему

Продвинутый курс по Rust: Работа с файлами и обработка ошибок

В этой статье мы рассмотрим, как в Rust работать с файлами и обрабатывать ошибки при чтении и записи данных. Мы разработаем простое приложение для учета задач, которое будет сохранять задачи в файл и загружать их при следующем запуске.

1. Шаг 1: Создание структуры Task

Для начала определим структуру Task, которая будет представлять собой одну задачу с полями для названия, описания и статуса выполнения.

rust

2. Шаг 2: Реализация функций для работы с файлами

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

rust

-2

Здесь мы используем библиотеку serde для сериализации и десериализации данных в формат JSON. Функция write_tasks_to_file() принимает список задач и записывает их в файл tasks.json, а функция read_tasks_from_file() читает данные из файла и возвращает список задач.

3. Шаг 3: Работа с пользовательским вводом

Создадим функцию, которая будет запрашивать у пользователя информацию о новой задаче и добавлять ее в список задач.

rust

-3

4. Шаг 4: Реализация главной функции

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

rust

-4

В главной функции мы используем бесконечный цикл для отображения меню пользователю. Затем, в зависимости от выбора пользователя, вызываем соответствующие функции.

5. Шаг 5: Запуск программы

Сохраним файл и запустим наше приложение:

bush "cargo run"

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

Задание:

  1. Добавьте функцию для отметки задачи как выполненной и реализуйте соответствующую функцию в меню приложения.
  2. Добавьте функцию для удаления задачи из списка и реализуйте соответствующую функцию в меню приложения.

Теперь вы создали полноценное приложение на Rust с использованием работы с файлами и обработки ошибок! В следующей статье мы продолжим углубляться в различные аспекты разработки на Rust и добавим обработку ошибок для пользовательского ввода.