Перейти к содержимому

Первые шаги в Rust

Давай установим Rust на твой компьютер и соберём первую программу. Если пока не хочется ничего устанавливать, можно повторять всё в Rust Playground и вернуться к этой странице позже.

Официальный способ установить 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

Закрой терминал, открой его снова и выполни:

Terminal window
rustc --version
cargo --version

Ты должен увидеть номера версий вроде rustc 1.xx.0. Если они есть — всё готово.

  • rustc — это компилятор Rust (он превращает твой код в программу).
  • cargo — универсальный инструмент Rust для сборки, запуска, тестирования и управления проектами. cargo понадобится тебе почти для всего.

Не нужно создавать файлы вручную — пусть cargo подготовит проект за тебя:

Terminal window
cargo new hello_rust
cd hello_rust

Команда создаст папку hello_rust со всем, что нужно проекту на Rust:

hello_rust/
├── Cargo.toml # настройки проекта и зависимости
└── src/
└── main.rs # здесь живёт твой код
  • Cargo.toml описывает проект: его название, версию и библиотеки, которые он использует.
  • src/main.rs — стартовый файл. cargo даже сразу кладёт в него Hello World.

Находясь внутри папки проекта, выполни:

Terminal window
cargo run

Cargo скомпилирует проект, а затем программа выведет:

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 Только компилирует — программа появится в 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, и подсказывает добавить !. Читай сообщение сверху вниз:

  1. Первая строка говорит, что не так: Rust ожидал функцию, а println — это макрос (что это значит, узнаешь на следующей странице).
  2. --> src/main.rs:2:5 говорит где: файл src/main.rs, строка 2, столбец 5.
  3. Значки ^^^^^^^ указывают на конкретный кусок кода.
  4. Часть help: часто показывает исправление. Здесь она даже отмечает недостающий ! знаком +.

Верни ! на место, и всё снова заработает:

fn main() {
println!("Hello, world!");
}

Вывод:

Hello, world!
▶ Попробуй сам

Чтобы работать было удобнее всего, установи в редактор расширение rust-analyzer. Оно даёт автодополнение, ошибки прямо в коде и подсказки типов по мере набора.

  • VS Code — установи расширение rust-analyzer
  • Большинство других редакторов (JetBrains, Neovim и т. д.) тоже поддерживают rust-analyzer.

Сделай так, чтобы программа вывела три строки: твоё имя, любимую еду и Я только что запустил Rust!. Подсказка: один println! печатает одну строку, значит, нужно три.

Показать решение
fn main() {
println!("Меня зовут Саша");
println!("Я люблю пиццу");
println!("Я только что запустил Rust!");
}

Вывод:

Меня зовут Саша
Я люблю пиццу
Я только что запустил Rust!
▶ Попробуй сам

Выведи небольшой баннер, как ниже: строка из знаков = над заголовком и под ним. Потом специально сломай программу, удалив !, выполни 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