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

А зачем преобразовывать? Почему не просто тип?

17 ответов

14 просмотров

ибо могут скастить и поменять

Lev-Shagalov Автор вопроса
Alexandr ∨∧‾ Emelyanov
ибо могут скастить и поменять

Э... мы рассматриваем коллег как партизан, намеренно подрывающих устойчивость кода?

Lev Shagalov
Э... мы рассматриваем коллег как партизан, намерен...

ну контекст не известен) может это публичная либа?)

Lev-Shagalov Автор вопроса
Alexandr ∨∧‾ Emelyanov
ну контекст не известен) может это публичная либа?...

Окей, значит toMap/toList только для защиты от человеческого фактора? Если мы предполагаем, что это не либа и партизанить никто не будет - вызывать это не обязательно?

Lev Shagalov
Окей, значит toMap/toList только для защиты от чел...

Если каста не боитесь, можете не вызывать. В обратном случае преобразовать придётся.

Alexandr ∨∧‾ Emelyanov
ибо могут скастить и поменять

Я думаю, что закладывваться на любителей играть в рефлексию - так себе идея. Если захотят, все равно сломают

Alexandr ∨∧‾ Emelyanov
ну контекст не известен) может это публичная либа?...

Публичная либа имеет публичное API. Если кто-то ее хачит и ломает API, это проблема того, кто хачит

Lev Shagalov
Окей, значит toMap/toList только для защиты от чел...

боюсь toMap и toList вернут те же мутабельные коллекции скастенные в иммутабл

Alexandr ∨∧‾ Emelyanov
боюсь toMap и toList вернут те же мутабельные колл...

У меня тоже такое ощущение. Вообще, protective copy надо применять только когда оно реально нужно.

Lev-Shagalov Автор вопроса
Lev Shagalov
Ну вот а когда оно реально нужно?

Например когда ты передаешь именно изменяемое состояние и хочешь его потом менять, но независимым образом. Или когда ты хочешь гарантировать, что результат будет неизменен. Например у тебя есть быстро меняющийся список, а в UI ты хочешь отдать снапшот

Lev-Shagalov Автор вопроса
Lev Shagalov
А... Оно ж по ссылке будет меняться... Да...

Да. Но обычно это не страшно, потому что результат консистентен всегда. Я в последнее время стараюсь где это надо на выход отдавать не коллекцию, а Iterator/sequence/flow, который дает тебе по сути снапшот без оверхеда на защитное копирование. Его можно прочитать только один раз.

Alexander Nozik
Да. Но обычно это не страшно, потому что результат...

Так flow же отдает постепенно данные, или это не принципиально? Насчёт sequence - хорошая идея

Mr Fox
Так flow же отдает постепенно данные, или это не п...

если это List.toFlow, то почти ничем не отличается от Sequence

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
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
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта