🦀 Rust Journey 🦀
889 subscribers
52 photos
2 videos
1 file
240 links
Наше коммьюнити объединяет как новичков, так и опытных разработчиков, готовых поделиться своими знаниями и опытом. Здесь вы найдете обучающие материалы, обсуждения новейших тенденций в Rust и многое другое.

по всем вопросам: @denis_sukhoverkhov
Download Telegram
Стек и Куча

Перед тем как начать изучать концепцию владения, давайте вспомним про способы хранения данных в оперативной памяти.

Во многих языках программирования нам не часто приходится думать о стеке и куче. Однако в системном языке программирования, таком как Rust, расположение значения на стеке или куче имеет большое влияние на поведение программы, мы должны это понимать.

Стек (Stack)

1) Стек хранит значения в порядке их поступления и удаляет их в обратном порядке (LIFO - Last In, First Out).
2) Добавление данных называется "pushing onto the stack", а удаление - "popping off the stack".
3) Стек быстр из-за того, как он получает доступ к данным: всегда из верхней части стека.
4) Все данные на стеке должны иметь известный и фиксированный размер.

Куча (Heap)

1) Куча менее организована: когда мы размещаем данные на куче, мы запрашиваем некоторое количество пространства.
2) ОС находит подходящее место, помечает его как занятое и возвращает указатель.
3) Этот процесс называется "выделением на куче" или просто "выделением".

Сравнение Стека и Кучи

1) Доступ к данным на куче медленнее, чем доступ к данным на стеке.
2) Выделение большого количества пространства на куче также может занять время.

🤔 Зачем Важно Понимание Стека и Кучи?

1️⃣ Когда наш код вызывает функцию, переданные в функцию значения (включая, возможно, указатели на данные на куче) и локальные переменные функции помещаются на стек.

2️⃣ Ownership в Rust помогает управлять данными на куче, минимизирует дублирование данных и удаляет неиспользуемые данные, чтобы не закончилось свободное пространство.

Понимание принципа Ownership позволяет не часто думать о стеке и куче, но знание того, что управление данными на куче является причиной существования Ownership, может помочь объяснить, почему это работает именно так.

#RustLang #Ownership #Stack #Heap

Rust Journey
🔥5👍4👏1🤔1🤓1
Срезы (Slices)

🔹 Что такое Слайсы?

Слайсы в Rust — это ссылки на часть коллекции, а не на всю коллекцию. Это позволяет работать с фрагментами массивов, строк и других коллекций.

let arr = [1, 2, 3, 4, 5];
let slice = &arr[1..4];

🔸 Синтаксис

Вместо того чтобы работать с ссылкой на всю строку String, вы можете работать с её частью, используя диапазон [start..end].

let s = String::from("hello world");
let hello = &s[0..5];
let world = &s[6..11];


📌 В данном примере, hello и world являются срезами строки s.

🔸 Внутреннее устройство

Срезы хранят начальную позицию и длину фрагмента. Например, срез world содержит указатель на 6-й байт строки s и длину 5.

🔹 Зачем это нужно?

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

Подробнее про слайсы читайте тут.

#Rust #Slices #Programming #RustLang #Tips

Rust Journey
👍5🔥2🤔21
Линус Торвальдс о вхождении Rust в ядро Linux!

В интервью Торвальдс делится своими мыслями о языке программирования Rust и его потенциальном влиянии на ядро Linux.

🎥 Смотреть интервью: Линус Торвальдс о Rust в составе ядра Linux

🔗 Связанные ресурсы:

1) Язык программирования Rust

2) Разработка ядра Linux

Как думаете в будущем ядро перепишут полностью на Rust?

#Linux #RustLang #OpenSource #Programming

Rust Journey
👍8🔥41👏1
Влияние Rust на экосистему Javascript

Я был поражен, узнав, насколько сильное влияние оказывает Rust на JavaScript в наши дни. Все больше инструментов для JavaScript переписываются на Rust, и результаты просто поражают: скорость работы увеличивается в разы!

Подробнее об этом можно узнать в этом увлекательном видео: ссылка

Rust продолжает ускорять JavaScript! 🚀

#RustLang #javascript

@rust_journey
👍74🔥2