Введение
Программы на Rust обычно организуют и запускают с помощью Cargo — инструмента Rust для управления проектами и их сборки. В этой лабораторной работе вы завершите небольшой проект Cargo в терминале Linux. Предварительный опыт работы с терминалом, редактором или Rust не требуется.
Вы научитесь переходить в папку проекта, редактировать исходный файл Rust с помощью nano, просить Cargo проверить код и запускать готовую программу. Лабораторная работа проверяет и исходный код, и точный вывод программы.
Перейдите в проект и отредактируйте исходный код
На этом шаге вы найдёте подготовленный проект и впервые внесёте небольшое изменение в Rust-код с помощью nano.
Терминал — это текстовая область, в которой вы вводите команды. Команда — это инструкция для компьютера. Сначала щёлкните внутри терминала, чтобы он получил фокус клавиатуры, введите следующую команду и нажмите Enter:
pwd
pwd означает print working directory — «вывести текущий рабочий каталог». Каталог — другое название папки. В выводе отображается папка, в которой вы сейчас находитесь; обычно это /home/labex.
Затем выведите список элементов в этой папке:
ls
ls означает list — «вывести список». Вы должны увидеть папку с именем project.
Используйте cd, что означает change directory — «сменить каталог», чтобы перейти в подготовленный проект Rust. Путь начинается с /, поэтому это абсолютный путь: он задаёт расположение от корня файловой системы, а не от текущего каталога.
cd /home/labex/project/hello-rust
При успешном выполнении cd терминал обычно ничего не выводит. Выведите содержимое проекта:
ls
Вы должны увидеть Cargo.toml и src. Cargo читает Cargo.toml, чтобы узнать имя пакета, его версию, редакцию Rust и зависимости. В каталоге src находятся исходные файлы Rust; эта программа начинается с файла src/main.rs.
Откройте исходный файл в nano — простом текстовом редакторе для терминала:
nano src/main.rs
src/main.rs — это относительный путь. Поскольку он не начинается с /, терминал ищет этот файл внутри текущего каталога /home/labex/project/hello-rust. Поэтому перед открытием файла важно сначала перейти в проект с помощью cd.
Файл появится в терминале. Перемещайте курсор клавишами со стрелками. Измените только пять символов подчёркивания, чтобы строка выглядела так:
println!("Hello from LabEx!");
В нижней части окна nano символ ^ означает клавишу Ctrl. Сохраните файл с помощью Ctrl+O (удерживайте Ctrl и нажмите O), затем нажмите Enter, чтобы подтвердить имя файла. Выйдите из редактора с помощью Ctrl+X.
Снова откройте тот же файл, чтобы убедиться, что изменение сохранилось на диске:
nano src/main.rs
Убедитесь, что строка содержит Hello from LabEx!. Редактировать файл повторно не нужно, поэтому выйдите с помощью Ctrl+X. Повторное открытие сохранённого файла — полезная проверка, если вы не уверены, что изменение в редакторе сохранилось.
Выведите сохранённый файл, не открывая редактор повторно:
cat src/main.rs
cat выводит содержимое файла в терминале. В отличие от nano, эта команда только показывает файл и не открывает экран редактирования. Убедитесь, что вы видите Hello from LabEx! и что внутри сообщения нет символов подчёркивания.
Добавьте сообщение и проверьте код
На этом шаге вы разберётесь в небольшой программе, добавите одну строку и попросите Cargo проверить код на ошибки.
Терминал по-прежнему должен находиться в /home/labex/project/hello-rust. Если вы не уверены, команда pwd покажет текущий каталог. Снова откройте исходный файл:
nano src/main.rs
В программе используются несколько важных конструкций Rust:
fn main()определяет главную функцию, с которой начинается выполнение этой программы.- Открывающая и закрывающая фигурные скобки
{и}ограничивают инструкции функции. println!выводит строку текста. Символ!показывает, чтоprintln!— это макрос Rust.- Текст между двойными кавычками — это строковый литерал.
- Точка с запятой
;завершает эту инструкцию.
Переместите курсор в конец существующей строки println!, нажмите Enter и добавьте перед закрывающей фигурной скобкой вторую инструкцию:
println!("I am learning Rust with Cargo.");
Теперь весь файл должен выглядеть так:
fn main() {
println!("Hello from LabEx!");
println!("I am learning Rust with Cargo.");
}
Сохраните файл с помощью Ctrl+O, нажмите Enter и выйдите с помощью Ctrl+X.
Теперь попросите Cargo проверить, может ли пакет скомпилироваться:
cargo check
cargo check анализирует код и сообщает об ошибках, не создавая итоговую исполняемую программу. Первая проверка может занять некоторое время. При успешном выполнении вывод заканчивается строкой, содержащей Finished.
Если Cargo сообщает об ошибке, сравните содержимое файла с полным примером. Обратите особое внимание на кавычки, круглые скобки, точки с запятой и фигурные скобки. Выполните nano src/main.rs, исправьте файл, сохраните его и снова запустите cargo check.
Запустите программу с помощью Cargo
На этом шаге вы соберёте и запустите проверенную программу на Rust.
Выполните следующую команду из каталога /home/labex/project/hello-rust:
cargo run
cargo run выполняет две связанные задачи: компилирует пакет в исполняемую программу, а затем запускает эту программу. Перед выводом самой программы Cargo может показать несколько строк о состоянии сборки.
Ближе к концу вывода вы должны увидеть две строки:
Hello from LabEx!
I am learning Rust with Cargo.
Запустите программу ещё раз, скрыв сообщения Cargo о состоянии:
cargo run --quiet
Параметр --quiet уменьшает объём собственного вывода Cargo, поэтому должны отображаться только две строки вашей программы. Теперь вы завершили основной рабочий процесс Cargo: редактирование, проверку и запуск.
Итоги
Вы перемещались по терминалу Linux, редактировали и сохраняли код Rust с помощью nano, познакомились с главной функцией и макросом println!, проверили пакет Cargo и запустили его. Освоенный цикл «редактирование — проверка — запуск» служит основой для дальнейших проектов на Rust.


