172 похожих чатов

Кто нибудь может объяснить зачем zero sized types нужны и

в чем их преимущество по сравнению с обычными типами? В доке какой-то по-моему бессмысленный пример что типа можно из хэшмапы сделать хэшсет если значение будет типом нулевого размера

7 ответов

22 просмотра

http://webcache.googleusercontent.com/search?q=cache:xjqZ2MQWZ5YJ:https://www.hardmo.de/article/2021-03-14-zst-proof-types.md&hl=ru&gl=ru&strip=1&vwsrc=0

А в чём бессмысленность получения сета из мапы?

Ну а вообще, типы нулевого размера довольно естественная вещь. Например есть у тебя массив [u32; 0] сколько он должен занимать байт? Логично что 0. Или тип функции, которая ничего не возвращает, но формально всё равно нужно определить её тип. Тогда пусть это будет значение нулевого размера. А с практической точки зрения их можно использовать в обобщенном коде. Например если тебе где-то нужно вернуть Result<T, Error>, но твоя операция не возвращает никакое значение. Тогда ты просто указываешь что T это ()

Nano
Ну а вообще, типы нулевого размера довольно естест...

На самом деле массивы и вектора нулевого размера не самая полезная вещь. Например, если бы мы имели инвариант, что в массиве или векторе число элементов больше нуля, то множество методов могли бы возвращать T, а не Option<T>

Василий Требунцов
На самом деле массивы и вектора нулевого размера н...

В том то и дело что часто нужны массивы и вектора нулевой длины

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта