Итераторы в Rust

Итераторы сердце языка Rust, язык стремится к zero-cost abstraction (абстракциям с нулевой стоимостью) и итераторы часто работают быстрее классических циклов потому как компилятор оптимизирует их лучше. Понять итераторы Поймите три кита итераторов Все методы итераторов делятся на три группы. Если вы их различаете, то код не будет для вас магией. Создатели (iterators): методы которые создают…

self в Rust

Мутный self в Rust или как раз и навсегда его понять

На начальном у всех новичков возникают проблемы с тем что значит self в rust и чем он отличается от Self. Ниже приведен пример кода из книги «Rust Профессиональное программирование». В книге допущена ошибка, я отметил ее в комментарии. Ожидался self, но случайно был напечатан Self и программа перестала компилироваться. Посмотрите этот код, он отлично иллюстрирует…

Так ли просто написать «Hello, World!» на языке Rust — про ссылки и разыменование

Сегодня столкнулся с интересной проблемой, которая показалась мне забавной. Простенькая задачка, что будет если добавить амперсанд к строке «Hello, World!». Собственно, давайте попробуем разобраться, что происходит когда мы делаем ссылку на «&str» тип. Посмотрите на код ниже, далее мы подробно разберем каждую строку.  

Разберём пошагово, что происходит в каждом вызове println! и почему возникает ошибка E0614.…

Rustlings — решаем задачи по RustBook, настраиваем среду

В этой статье настроим среду разработки и добавим настроек Vim + Tmux, для удобного решения задач курса Rustlings. Для тех кто пока не в теме Rustlings это небольшой курс по языку Rust в котором вам необходимо исправлять ошибки компилятора. Вооружившись знаниями из RustBook вы легко с этим справитесь. Можно читать книгу параллельно, обращаясь к главам…

Без паники! Конфигурация макроса panic в языке Rust

Строка [profile.release] с параметром panic = «abort» в файле Cargo.toml (система сборки Rust) задаёт стратегию обработки паник (panics) для релизной конфигурации (release‑сборки). Что это значит По умолчанию в Rust при панике выполняется unwinding («размотка» стека): программа последовательно проходит по стеку вызовов вверх; освобождает память и вызывает деструкторы для всех локальных объектов; затем завершается. Параметр panic = «abort» отключает unwinding и заменяет его на аварийное завершение (abort): при панике программа немедленно…