Rust
6.64K subscribers
257 photos
28 videos
3 files
822 links
Rust programming language

По всем вопросам- @haarrp

@ai_machinelearning_big_data - машинное обучение

@programming_books_it - бесплатные it книги

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚
Download Telegram
rustbook.pdf
3.2 MB
Язык программирования Rust - Учебник

@rust_code
👍9🔥4
Поток управления

Способность запускать некоторый код в зависимости от истинности условия или выполнять некоторый код многократно, пока условие истинно, является базовым элементом большинства языков программирования. Наиболее распространёнными конструкциями, позволяющими управлять потоком выполнения кода в Rust, являются выражения if и циклы.

https://doc.rust-lang.ru/book/ch03-05-control-flow.html

@rust_code
👍51🥰1👏1
Что такое владение в Rust?

Владение является центральной особенностью языка Rust. Хотя эту особенность легко объяснить, она весьма сильно повлияла на остальную часть языка.

Все программы во время выполнения используют память компьютера и используют разные подходы для управления своей памятью. В одних языках программирования для этой цели используют систему сборки мусора (garbage collection, GC) постоянно следящую за памятью программы, которая больше не используется программой. В других языках программист должен сам явно запрашивать и освобождать память. Rust же использует третий подход: память управляется с помощью системы владения с набором правил, которые компилятор проверяет только во время компиляции программы. Ни одно из правил владения не замедляет выполнение программы.

Читать дальше

@rust_code
👍51🔥1🥰1👏1
Определение и инициализация структур

Структуры похожи на кортежи, рассмотренные в разделе "Тип Кортеж", так как оба хранят несколько связанных значений. Как и кортежи, части структур могут быть разных типов. В отличие от кортежей, в структуре необходимо именовать каждую часть данных для понимания смысла значений. Добавление этих имён обеспечивает большую гибкость структур по сравнению с кортежами: не нужно полагаться на порядок данных для указания значений экземпляра или доступа к ним.

Для определения структуры указывается ключевое слово struct и её название. Название должно описывать значение частей данных, сгруппированных вместе. Далее, в фигурных скобках для каждой новой части данных поочерёдно определяются имя части данных и её тип. Каждая пара имя: тип называется полем. Листинг 5-1 описывает структуру для хранения информации об учётной записи пользователя:


struct User {
active: bool,
username: String,
email: String,
sign_in_count: u64,
}

Читать дальше

@rust_code
🔥4👍2
Ссылочные переменные и заимствование

Основная проблематика в подходе с использованием кортежа в листинге 4-5 заключается в том, что мы должны вернуть String в вызывающую функцию, чтобы мы могли использовать String после вызова функции calculate_length, потому что String была перемещена в функциюcalculate_length. Вместо этого мы можем предоставить ссылку на значение String Ссылка похожа на указатель в том смысле, что это адрес, по которому мы можем получить доступ к данным, хранящимся по этому адресу, принадлежащему какой-либо другой переменной. В отличие от указателя, ссылка гарантированно указывает на допустимое значение определённого типа. Вот как вы могли бы определить и использовать функцию calculate_length которая имеет ссылку на объект в качестве параметра вместо того, чтобы владеть значением:

Файл: src/main.rs

Читать дальше

@rust_code
👍4🔥2
Срезы

Другим типом данных, который не забирает во владение данные является срез (slice). Срез позволяет ссылаться на смежную последовательность элементов из коллекции, вместо полной коллекции.

Рассмотрим небольшую программную проблему: необходимо написать функцию, входным параметром которой является строка, а выходным значением функции является первое слово, которое будет найдено в этой строке. Если функция не находит пробелы, она возвращает полную строку.

Читать дальше

@rust_code
👍6
Что выведет код ?

Ответ: 1243

@rust_code
👍51
Что выведет код ?

Ответ: 14

@rust_code
👍10
Rust большая шпаргалка по языку

https://cheats.rs/

@rust_code
👍10🥰3
Что выведет код ?

Ответ: 123

@rust_code
👍6👏21