Первые шаги в Rust
Давай установим Rust на твой компьютер и соберём первую программу. Если пока не хочется ничего устанавливать, можно повторять всё в Rust Playground и вернуться к этой странице позже.
Шаг 1: установи Rust с помощью rustup
Заголовок раздела «Шаг 1: установи Rust с помощью rustup»Официальный способ установить Rust — инструмент rustup. Он ставит компилятор Rust, инструмент сборки cargo и следит, чтобы всё было актуальным.
Зайди на rustup.rs и следуй инструкциям для своей системы:
-
Windows — скачай и запусти
rustup-init.exe, затем согласись с настройками по умолчанию. -
macOS / Linux — вставь эту команду в терминал:
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Шаг 2: проверь, что всё работает
Заголовок раздела «Шаг 2: проверь, что всё работает»Закрой терминал, открой его снова и выполни:
rustc --versioncargo --versionТы должен увидеть номера версий вроде rustc 1.xx.0. Если они есть — всё готово.
rustc— это компилятор Rust (он превращает твой код в программу).cargo— универсальный инструмент Rust для сборки, запуска, тестирования и управления проектами.cargoпонадобится тебе почти для всего.
Шаг 3: создай первый проект
Заголовок раздела «Шаг 3: создай первый проект»Не нужно создавать файлы вручную — пусть cargo подготовит проект за тебя:
cargo new hello_rustcd hello_rustКоманда создаст папку hello_rust со всем, что нужно проекту на Rust:
hello_rust/├── Cargo.toml # настройки проекта и зависимости└── src/ └── main.rs # здесь живёт твой кодCargo.tomlописывает проект: его название, версию и библиотеки, которые он использует.src/main.rs— стартовый файл.cargoдаже сразу кладёт в него Hello World.
Шаг 4: запусти
Заголовок раздела «Шаг 4: запусти»Находясь внутри папки проекта, выполни:
cargo runCargo скомпилирует проект, а затем программа выведет:
Hello, world!Вот и всё — ты только что собрал и запустил программу на Rust.
Разбираемся в коде
Заголовок раздела «Разбираемся в коде»Открой src/main.rs, и ты увидишь:
fn main() { println!("Hello, world!");}fn main() { ... }объявляет главную функцию — любая программа на Rust начинает работу отсюда.println!("...")выводит строку текста на экран.
Попробуй поменять сообщение и снова выполнить cargo run:
fn main() { println!("Привет из моей первой программы на Rust!");}Вывод:
Привет из моей первой программы на Rust!cargo run или cargo build
Заголовок раздела «cargo run или cargo build»Две команды, которыми ты будешь пользоваться постоянно:
| Команда | Что делает |
|---|---|
cargo run |
Компилирует и запускает программу (удобнее всего во время разработки) |
cargo build |
Только компилирует — программа появится в target/debug/ |
cargo build --release |
Компилирует оптимизированную, более быструю версию для выпуска |
Если что-то пошло не так: читаем ошибки компилятора
Заголовок раздела «Если что-то пошло не так: читаем ошибки компилятора»Ошибки компилятора ты будешь видеть каждый день, даже спустя годы работы с Rust. Это не значит, что у тебя что-то не получается. Это компилятор делает свою работу. Давай специально получим ошибку, чтобы в первый раз было не так страшно.
Убери ! из println! в src/main.rs:
fn main() { println("Hello, world!");}Выполни cargo run, и ты получишь:
error[E0423]: expected function, found macro `println` --> src/main.rs:2:5 |2 | println("Hello, world!"); | ^^^^^^^ not a function |help: use `!` to invoke the macro |2 | println!("Hello, world!"); | +Компилятор пишет, что ожидал функцию, а нашёл макрос println, и подсказывает добавить !. Читай сообщение сверху вниз:
- Первая строка говорит, что не так: Rust ожидал функцию, а
println— это макрос (что это значит, узнаешь на следующей странице). --> src/main.rs:2:5говорит где: файлsrc/main.rs, строка 2, столбец 5.- Значки
^^^^^^^указывают на конкретный кусок кода. - Часть
help:часто показывает исправление. Здесь она даже отмечает недостающий!знаком+.
Верни ! на место, и всё снова заработает:
fn main() { println!("Hello, world!");}Вывод:
Hello, world!Шаг 5: настрой редактор (рекомендуется)
Заголовок раздела «Шаг 5: настрой редактор (рекомендуется)»Чтобы работать было удобнее всего, установи в редактор расширение rust-analyzer. Оно даёт автодополнение, ошибки прямо в коде и подсказки типов по мере набора.
- VS Code — установи расширение rust-analyzer
- Большинство других редакторов (JetBrains, Neovim и т. д.) тоже поддерживают rust-analyzer.
Практика
Заголовок раздела «Практика»1. Три строки
Заголовок раздела «1. Три строки»Сделай так, чтобы программа вывела три строки: твоё имя, любимую еду и Я только что запустил Rust!. Подсказка: один println! печатает одну строку, значит, нужно три.
Показать решение
fn main() { println!("Меня зовут Саша"); println!("Я люблю пиццу"); println!("Я только что запустил Rust!");}Вывод:
Меня зовут СашаЯ люблю пиццуЯ только что запустил Rust!2. Маленький баннер
Заголовок раздела «2. Маленький баннер»Выведи небольшой баннер, как ниже: строка из знаков = над заголовком и под ним. Потом специально сломай программу, удалив !, выполни cargo run, прочитай ошибку и исправь её. Подсказка: строки из = — это обычный текст внутри println!, как и любое другое сообщение.
Показать решение
fn main() { println!("=============="); println!(" ПРИВЕТ, RUST"); println!("==============");}Вывод:
============== ПРИВЕТ, RUST==============- Устанавливай Rust с помощью
rustupс сайта rustup.rs. - Проверяй установку командами
rustc --versionиcargo --version. - Создавай проект через
cargo new, запускай черезcargo run. - В проекте есть
Cargo.toml(настройки) иsrc/main.rs(твой код). - Читай ошибки компилятора сверху вниз: что случилось, где, и часто —
help:с исправлением. - Установи rust-analyzer в редактор — работать станет намного приятнее.
Проверь себя
Заголовок раздела «Проверь себя»Проверь себя
1. Какой инструмент устанавливает компилятор Rust и cargo и поддерживает их в актуальном состоянии?
2. Какой файл описывает название, версию и зависимости проекта на Rust?
3. Какая команда только компилирует программу, не запуская её?
Результат: 0 / 3
Что почитать
Заголовок раздела «Что почитать»- Установка — книга «Язык программирования Rust»: установка на любой платформе, обновление через
rustup updateи решение проблем (перевод на русский). - Привет, Cargo! — книга «Язык программирования Rust»: подробнее о
cargo new,cargo build,cargo runиcargo check(перевод на русский). - First Steps with Cargo — The Cargo Book (на английском): что создаёт
cargo newи что значит каждая строкаCargo.toml. - The rustup book (на английском): дополнительные тулчейны, обновление Rust и переключение между stable и nightly.
- rust-analyzer (на английском): инструкции по настройке для VS Code, Neovim, Emacs и других редакторов.