Стек и Куча
Перед тем как начать изучать концепцию владения, давайте вспомним про способы хранения данных в оперативной памяти.
Во многих языках программирования нам не часто приходится думать о стеке и куче. Однако в системном языке программирования, таком как 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
Перед тем как начать изучать концепцию владения, давайте вспомним про способы хранения данных в оперативной памяти.
Во многих языках программирования нам не часто приходится думать о стеке и куче. Однако в системном языке программирования, таком как 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 — это ссылки на часть коллекции, а не на всю коллекцию. Это позволяет работать с фрагментами массивов, строк и других коллекций.
🔸 Синтаксис
Вместо того чтобы работать с ссылкой на всю строку String, вы можете работать с её частью, используя диапазон [start..end].
📌 В данном примере,
🔸 Внутреннее устройство
Срезы хранят начальную позицию и длину фрагмента. Например, срез
🔹 Зачем это нужно?
Слайсы полезны, когда вам нужно работать с подмножеством данных, не забирая владение всей коллекцией.
Подробнее про слайсы читайте тут.
#Rust #Slices #Programming #RustLang #Tips
Rust Journey
🔹 Что такое Слайсы?
Слайсы в 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🤔2❤1
Линус Торвальдс о вхождении Rust в ядро Linux!
В интервью Торвальдс делится своими мыслями о языке программирования Rust и его потенциальном влиянии на ядро Linux.
🎥 Смотреть интервью: Линус Торвальдс о Rust в составе ядра Linux
🔗 Связанные ресурсы:
1) Язык программирования Rust
2) Разработка ядра Linux
Как думаете в будущем ядро перепишут полностью на Rust?
#Linux #RustLang #OpenSource #Programming
Rust Journey
В интервью Торвальдс делится своими мыслями о языке программирования Rust и его потенциальном влиянии на ядро Linux.
🎥 Смотреть интервью: Линус Торвальдс о Rust в составе ядра Linux
🔗 Связанные ресурсы:
1) Язык программирования Rust
2) Разработка ядра Linux
Как думаете в будущем ядро перепишут полностью на Rust?
#Linux #RustLang #OpenSource #Programming
Rust Journey
YouTube
Torvalds Speaks: Rust's Impact on the Linux Kernel
🚀 **Linux Torvalds Reveals Insights on Rust Programming Language!**
In this exclusive interview, dive deep into the world of open-source programming as Linux creator Linus Torvalds shares his thoughts on the Rust programming language. Learn about the potential…
In this exclusive interview, dive deep into the world of open-source programming as Linux creator Linus Torvalds shares his thoughts on the Rust programming language. Learn about the potential…
👍8🔥4❤1👏1
Json в Rust
Привет, кородкое видео перед сном про то как работать с json с помощью библиотек serde и reqwest!
Ссылка на видео
#RustLang #JSONParsing #Serde #Reqwest
@rust_journey
Привет, кородкое видео перед сном про то как работать с json с помощью библиотек serde и reqwest!
Ссылка на видео
#RustLang #JSONParsing #Serde #Reqwest
@rust_journey
YouTube
Parsing JSON in Rust using serde and reqwest
Today we will be discussing how to parse JSON in Rust using serde and reqwest!
📝Get your FREE Rust cheat sheet :
https://www.letsgetrusty.com/cheatsheet
code: https://github.com/letsgetrusty/json_parsing_example
📝Get your FREE Rust cheat sheet :
https://www.letsgetrusty.com/cheatsheet
code: https://github.com/letsgetrusty/json_parsing_example
👍7🔥2❤1😎1
Влияние Rust на экосистему Javascript
Я был поражен, узнав, насколько сильное влияние оказывает Rust на JavaScript в наши дни. Все больше инструментов для JavaScript переписываются на Rust, и результаты просто поражают: скорость работы увеличивается в разы!
Подробнее об этом можно узнать в этом увлекательном видео: ссылка
Rust продолжает ускорять JavaScript! 🚀
#RustLang #javascript
@rust_journey
Я был поражен, узнав, насколько сильное влияние оказывает Rust на JavaScript в наши дни. Все больше инструментов для JavaScript переписываются на Rust, и результаты просто поражают: скорость работы увеличивается в разы!
Подробнее об этом можно узнать в этом увлекательном видео: ссылка
Rust продолжает ускорять JavaScript! 🚀
#RustLang #javascript
@rust_journey
YouTube
Rust keeps making JavaScript faster
Delve into one of the most prominent trends within the JavaScript ecosystem. Join me as I unravel how Rust is revolutionizing JavaScript performance in today's video.
Free Rust cheat sheet: https://letsgetrusty.com/cheatsheet
Free Rust cheat sheet: https://letsgetrusty.com/cheatsheet
👍7❤4🔥2
Web3-разработка
Web3 - это один из трендов в котором широко применяется Rust. Предлагаю посмотреть ролик про Web3-разработка: Fift, FunC, Tact, Solidity / Как пишут код блокчейн-разработчики / TON vs Ethereum
#RustLang #web3 #crypto
@rust_journey
Web3 - это один из трендов в котором широко применяется Rust. Предлагаю посмотреть ролик про Web3-разработка: Fift, FunC, Tact, Solidity / Как пишут код блокчейн-разработчики / TON vs Ethereum
#RustLang #web3 #crypto
@rust_journey
YouTube
Языки Fift, FunC, Tact, Solidity / Разработка под блокчейн / TON vs Ethereum / Владимир Алефман
👉 UPD 2024: НОВЫЙ ХАКАТОН ОТ TON с призом в 2 миллиона долларов, го участвовать: https://bit.ly/ton-hack-2024
Регистрация до 30.04.2024
Сегодня вас ждёт хардкорный выпуск про блокчейн-разработку: что за языки программирования Fift, FunC, Tact, Solidity…
Регистрация до 30.04.2024
Сегодня вас ждёт хардкорный выпуск про блокчейн-разработку: что за языки программирования Fift, FunC, Tact, Solidity…
👍6❤1🔥1