1.83K subscribers
3.3K photos
131 videos
15 files
3.57K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Блог*
#prog #rust #моё Хроники замыканий Как я уже говорил, для каждого литерала замыкания компилятор Rust создаёт свой собственный анонимный тип, в котором содержатся захваченные замыканием переменные. Эти сгенерированные типы объединяет одно: они реализуют один…
Ох, постараюсь уложить это в голове. Есть ещё что-то, что нужно знать о замыканиях?

Да. Иногда требуется одно и тоже замыкание передать в качестве аргумента в несколько функций. Клонировать в этом случае не получится, потому что замыкание является клонируемым не всегда (а именно — начиная с версии 1.26.0, тогда, когда все захваченные значения клонируемы). Именно поэтому в стандартной библиотеке есть несколько blanket impl-ов, которые реализуют Fn*-трейты для ссылок на замыкания (например, вот). Поэтому, если, скажем, в двух функциях требуется замыкание, реализующее Fn(i32) -> i32, то можно сделать замыкание и передавать в качестве аргумента ссылку на него. В некоторых случаях сама функция требует ссылку на замыкание (хотя это, вообще говоря, странно). В таком случае можно взять ссылку непосредственно от литерала замыкания. Выглядит это несколько странно, но работает.

Видимо, на этом всё?

Отнюдь, о замыканиях можно рассказать ещё кое-что... Но это уже, видимо, тема для следующего поста. И будем надеяться, что его не придётся ждать ещё пару месяцев.
Блог*
Photo
Думаю, теперь вы лучше понимаете, что тут происходит во втором сниппете
Forwarded from 💮
Помню, мы как-то собирались у кого-то дома с ноутбуками и поднимали упоротую сеть такого вида:
(интернет) -eth- (PC) -eth- (ноутбук) -wifi- (ноутбук) -eth- (ноутбук)
Forwarded from codingteam@cjr
Orhideous
Топология SOSIG
#prog #rust

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

https://blog.kodewerx.org/2020/06/the-rust-compiler-isnt-slow-we-are.html
Forwarded from Маjко
Бе ды
с
bash кой
#prog #rust

Несколько неожиданное следствие строгой типизации в Rust: она помогает не оставлять в коде отладочную печать. Действительно, если убрать для своего типа реализацию Debug, то код, сгенерированный {, e}print{, ln}!/format{, args}!/write!/dbg! перестаёт тайпчекаться. К сожалению, не помогает, если печатаются примитивы и типы из чужих библиотек, для которых есть Debug.
#prog #rust

Викторина действительно занимательная
Forwarded from мне не нравится реальность (вафель 🧇)
Просто хочу поделиться замечательным rust-quiz от dtolnay (кто бы сомневался). Есть над чем задуматься (хотя прилично и простых вопросов)
#prog #rust #quotes

Толян действительно крут
Forwarded from Mikail Bagishov
Ты предлагаешь научить компилятор erase-ить любые трейты?
Forwarded from Антон
Нет