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

по всем вопросам: @denis_sukhoverkhov
Download Telegram
Срезы (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: Работаем с VecDeque

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

Основные Особенности VecDeque:

- Вставка элементов: Возможность добавления элементов как в начало (push_front), так и в конец (push_back) очереди.

- Удаление элементов: Удаление элементов из начала (pop_front) и конца (pop_back) очереди.

- Произвольный доступ: Доступ к элементам по индексу, хотя это не самая эффективная операция для VecDeque.

- Итерация: Поддержка итерации по элементам очереди.

Пример использования VecDeque:

use std::collections::VecDeque;

fn main() {
// Создаем пустую очередь
let mut queue = VecDeque::new();

// Добавляем элементы в очередь
queue.push_back("Rust");
queue.push_back("is");
queue.push_front("Hello,");

// Итерируемся по очереди и выводим элементы
for element in queue.iter() {
println!("{}", element);
}

// Удаляем элементы из очереди
while let Some(element) = queue.pop_front() {
println!("Удаленный элемент: {}", element);
}
}


В этом примере:

- Создается новая VecDeque.
- В нее добавляются элементы "Hello,", "Rust" и "is".
- Элементы итеративно выводятся на экран.
- Элементы удаляются из очереди до ее полного опустошения.

🛠️ VecDeque в Rust предоставляет гибкий и эффективный способ работы с очередями, позволяя легко реализовывать различные алгоритмы и структуры данных, где требуется быстрый доступ как к первому, так и к последнему элементу.

#Rust #Programming #DataStructures #VecDeque

@rust_journey
👍93🔥2
Линус Торвальдс о вхождении Rust в ядро Linux!

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

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

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

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

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

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

#Linux #RustLang #OpenSource #Programming

Rust Journey
👍8🔥41👏1
Асинхронное программирование в Rust

Привет, пора вкатываться понемногу в асинхронщину. Рекомендую посмотреть этот урок

Intro to async/.await in Rust

#rust #async #await

@rust_journey
👍84🔥3