Чек-лист самопроверки
Чек-лист самопроверки
- Что такое Rust и для каких задач он предназначен?
- Какие три главные цели Rust: безопасность, скорость, параллелизм?
- Что такое Cargo и зачем он нужен?
- Как создать новый проект с помощью
cargo new? - Что такое крейт (crate) и какие виды бывают (binary, library)?
- Какие примитивные типы данных есть в Rust (
i32,f64,bool,char,str)? - В чём разница между
Stringи&str? - Как объявляются переменные и почему они неизменяемы по умолчанию?
- Что такое владение (ownership) и какие три правила оно включает?
- Что происходит при передаче значения в функцию — копирование или перемещение?
- Какие типы реализуют трейт
Copy? - Что такое заимствование (
&T,&mut T)? - Какие правила заимствования существуют?
- Что такое время жизни (
'a) и зачем оно нужно? - Как аннотировать время жизни в функциях?
- Что такое структуры (
struct) и как их объявлять? - Как реализуются методы у структур (
impl)? - Что такое перечисления (
enum) и как они используются? - Как работает сопоставление с образцом (
match)? - Почему
matchдолжен быть исчерпывающим? - Что такое
Optionи как он заменяет null? - Что такое
Resultи как он используется для обработки ошибок? - Как работают операторы
?иunwrap()? - Что такое трейты (traits) и зачем они нужны?
- Как реализовать трейт для типа?
- Что такое обобщения (
generics) и как они записываются? - Как ограничить обобщённые типы с помощью трейтов (
where)? - Что такое макросы и чем они отличаются от функций?
- Как использовать макросы (
println!,vec!)? - Как определить собственный макрос (
macro_rules!)? - Как работают коллекции (
Vec,HashMap,HashSet)? - Как итерироваться по коллекциям (
iter(),into_iter(),iter_mut())? - Что такое замыкания (
|x| x + 1) и как они захватывают переменные? - Какие есть способы захвата в замыканиях (
Fn,FnMut,FnOnce)? - Как работает обработка ошибок без исключений?
- Что такое паника (
panic!) и когда её использовать? - Как писать unit-тесты и интеграционные тесты?
- Как запустить тесты с помощью Cargo?
- Что такое асинхронность в Rust (
async fn,.await)? - Какие асинхронные среды выполнения существуют (tokio, async-std)?
- Как работает работа с файлами (
std::fs,File::open)? - Как отправлять HTTP-запросы (reqwest, hyper)?
- Как сериализовать данные (serde, serde_json)?
- Что такое unsafe-блок и когда его можно использовать?
- Какие гарантии даёт Rust даже в
unsafe-коде? - Как кросскомпилировать Rust-приложение под другую платформу?
- Как работает документация через
///иcargo doc? - Что такое модули (
mod) и как организована видимость (pub)? - Как использовать внешние зависимости из crates.io?
- Какие инструменты входят в Rust Toolchain (rustc, cargo, rustfmt, clippy, rust-analyzer)?
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Инициатором проекта стал Graydon Hoare, тогда — независимый исследователь и разработчик, работавший в Mozilla с 2006 года. До этого он участвовал в разработке компиляторов и языковых инструментов,… Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Набор советов, правил, принципов и обычаев в разработке на этом языке. Черты могут иметь методы по умолчанию. Если тип не переопределяет метод, используется версия из черты. Это позволяет расширять функциональность без изменения базового кода. fn - ключевое слово, которое обозначает начало объявления функции. Функция представляет собой именованный блок кода, выполняющий конкретную задачу. В данном случае функция называется main. Rust — это язык системного программирования, сочетающий безопасность памяти, высокую производительность и выразительность. Его экосистема охватывает широкий спектр областей — от встраиваемых систем… Системное программирование — это разработка программного обеспечения, отвечающего за взаимодействие с аппаратной частью компьютера и операционной системой. Такое ПО создаёт фундамент, на котором… Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевое слово Значение -------------------------- abstract Зарезервировано для будущих версий языка become Зарезервировано для будущих версий языка box Зарезервировано для будущих версий языка do… Макрос / Атрибут Назначение ------------------------------ test Пометка функции как теста для cargo test should_panic Ожидание паники при выполнении теста ignore Пропуск теста при обычном запуске… Типизация, набор правил определения типа данных значений языка. Циклы в Rust — это конструкции, предназначенные для многократного выполнения блока кода до тех пор, пока выполняется определённое условие или не исчерпан набор данных. В отличие от многих других…История языка Rust
Что требуется знать перед началом изучения языка программирования Rust
Рекомендации по разработке на Rust
Rust для начинающих
Основы языка Rust
Экосистема приложений на Rust
Системное программирование на Rust
Синтаксис и пунктуация в Rust
Ключевые слова языка Rust
Встроенные функции и стандартная библиотека
Типы данных и владение памятью
Управляющие конструкции и циклы в Rust