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

12 ответов

17 просмотров

Инварианты.

Monstrous-Moonshine Автор вопроса
Эрик
Инварианты.

Ну это внутри имплементации, len же ни разу не pub.

Потому что если длинна будет больше, чем на самом деле есть элементов — можно будет прочитать не инициализированную память. А если больше чем capacity то ещё хуже

Monstrous Moonshine
Ну это внутри имплементации, len же ни разу не pub...

1) мы обсуждали теорию на счёт того, что его можно было бы сделать pub 2) из-за этого получается что unsafe распространяется по всему модулю совсем не заметно

Monstrous-Moonshine Автор вопроса
вафель 🧇🍓
Потому что если длинна будет больше, чем на самом ...

Да, теперь понял. Но это больше похоже на контракт который сложно описать правильно

Monstrous-Moonshine Автор вопроса
вафель 🧇🍓
Неописуемые контракты это и есть unsafe

Не совсем, есть семантическая разница между unsafe и unsound

Monstrous Moonshine
Да, теперь понял. Но это больше похоже на контракт...

Не особенно сложно. Просто в контрактах обычно используются ghost-переменные и -структуры данных.

Monstrous Moonshine
Не совсем, есть семантическая разница между unsafe...

Нет, unsound и unsafe — разные вещи. Unsafe часто и внутри модуля используется, даже если функция не публична, но имеет инварианты.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта