Папищеки, у меня вопрос. В C# у каждого типа, унаследованного от Object, есть метод GetHashCode. Он, как следует из названия, возвращает хэш от объекта, и по умолчанию считается от адреса. Для своих типов принято GetHashCode писать, объединяя хэши полей.
Тип List<T> логически содержит несколько значений одного типа, поэтому, по идее, GetHashCode у него должен считать хэши элементов и комбинировать. На практике же GetHashCode у него не переопределён. Это приводит к двум проблемам.
Во-первых, даже если тип — record, для которого компилятор по идее генерирует определение некоторых операций автоматически, если там есть List, то GetHashCode нужно писать вручную, иначе семантика будет неправильной.
Во-вторых, это нарушает фундаментальное свойство хэш-функций: если два значения равны друг другу, то значения хэш-функции на них также равны. С List это не так: можно иметь два экземпляра с одинаковыми элементами, которые будут иметь разный хэш из-за того, что располагаются по разным адресам.
Вопрос:нах зачем так сделано?
Тип List<T> логически содержит несколько значений одного типа, поэтому, по идее, GetHashCode у него должен считать хэши элементов и комбинировать. На практике же GetHashCode у него не переопределён. Это приводит к двум проблемам.
Во-первых, даже если тип — record, для которого компилятор по идее генерирует определение некоторых операций автоматически, если там есть List, то GetHashCode нужно писать вручную, иначе семантика будет неправильной.
Во-вторых, это нарушает фундаментальное свойство хэш-функций: если два значения равны друг другу, то значения хэш-функции на них также равны. С List это не так: можно иметь два экземпляра с одинаковыми элементами, которые будут иметь разный хэш из-за того, что располагаются по разным адресам.
Вопрос:
🤡14🤣4🥴1
Блог*
Папищеки, у меня вопрос. В C# у каждого типа, унаследованного от Object, есть метод GetHashCode. Он, как следует из названия, возвращает хэш от объекта, и по умолчанию считается от адреса. Для своих типов принято GetHashCode писать, объединяя хэши полей. …
BTW Array в хэше смотрит только на 8 последних элементов
🤣15❤🔥1🤯1
Forwarded from ReadMe.txt (Ilya Klishin)
Загрузил в нейросеть заключение КГБ на «Москва — Петушки» и попросил в аналогичный манере описать несколько книг из школьной программы. Что-то мне это смутно напоминает… 🤔
«Горе от ума». Произведение носит деструктивный характер, формирует у современной молодежи презрение к патриотической службе и государственным устоям. Главный персонаж распространяет оппозиционные взгляды под иностранным влиянием, насаждает нездоровый культ индивидуализма и подрывает уважение к семейным ценностям. Вредное содержание может использоваться враждебными структурами для дискредитации традиционных ценностей.
«Евгений Онегин». Роман пропагандирует праздность, тунеядство и аморальные развлечения молодежи. В книге отсутствует образ созидательного труда, вместо этого культивируются цинизм и разврат. Произведение наносит ущерб национальной воспитательной модели, вводя в сознание детей установку на безделье и «свободную любовь».
«Герой нашего времени». Книга оправдывает безответственность и деморализацию офицерского состава во время проведения военной операции. Через образ Печорина внушается недоверие к службе, сеются сомнения в целесообразности дисциплины и патриотического долга. Народные традиции и национальные интересы искажены, присутствуют элементы пропаганды фатализма и разрушения семьи.
«Мертвые души». Произведение исключительно враждебно изображает государственный строй, выставляя чиновников и русский народ как сборище пьяниц и жуликов. В тексте отсутствуют примеры положительного созидания, культивируется мошенничество. Книга способна формировать прозападный нигилизм, недоверие к власти и оправдание коррупционных практик как нормы жизни.
«Отцы и дети». В романе навязывается карикатурный либерализм, отрицаются традиционные ценности и культурное наследие. Молодое поколение показано в виде разрушителей устоев, презирающих семью и саму государственность. Произведение имеет подрывной характер, направлено на разжигание конфликта поколений и разрушение патриотического сознания.
«Преступление и наказание». Книга содержит оправдание убийства и антиобщественных теорий, подменяя закон деструктивными переживаниями. Пропагандируется идея «особой личности», имеющей право на насилие, что формирует экстремистское мышление. Полиция и государственные органы представлены в уничижительном виде, что вредит авторитету власти и подрывает основы правопорядка.
«Горе от ума». Произведение носит деструктивный характер, формирует у современной молодежи презрение к патриотической службе и государственным устоям. Главный персонаж распространяет оппозиционные взгляды под иностранным влиянием, насаждает нездоровый культ индивидуализма и подрывает уважение к семейным ценностям. Вредное содержание может использоваться враждебными структурами для дискредитации традиционных ценностей.
«Евгений Онегин». Роман пропагандирует праздность, тунеядство и аморальные развлечения молодежи. В книге отсутствует образ созидательного труда, вместо этого культивируются цинизм и разврат. Произведение наносит ущерб национальной воспитательной модели, вводя в сознание детей установку на безделье и «свободную любовь».
«Герой нашего времени». Книга оправдывает безответственность и деморализацию офицерского состава во время проведения военной операции. Через образ Печорина внушается недоверие к службе, сеются сомнения в целесообразности дисциплины и патриотического долга. Народные традиции и национальные интересы искажены, присутствуют элементы пропаганды фатализма и разрушения семьи.
«Мертвые души». Произведение исключительно враждебно изображает государственный строй, выставляя чиновников и русский народ как сборище пьяниц и жуликов. В тексте отсутствуют примеры положительного созидания, культивируется мошенничество. Книга способна формировать прозападный нигилизм, недоверие к власти и оправдание коррупционных практик как нормы жизни.
«Отцы и дети». В романе навязывается карикатурный либерализм, отрицаются традиционные ценности и культурное наследие. Молодое поколение показано в виде разрушителей устоев, презирающих семью и саму государственность. Произведение имеет подрывной характер, направлено на разжигание конфликта поколений и разрушение патриотического сознания.
«Преступление и наказание». Книга содержит оправдание убийства и антиобщественных теорий, подменяя закон деструктивными переживаниями. Пропагандируется идея «особой личности», имеющей право на насилие, что формирует экстремистское мышление. Полиция и государственные органы представлены в уничижительном виде, что вредит авторитету власти и подрывает основы правопорядка.
❤9😁3💩1
Forwarded from dev optozorax
Через пару часов сегодня начнётся лунное затмение.
Чтобы посмотреть когда в вашем городе начнётся затмение, советую открыть сайт https://www.timeanddate.com/eclipse/in/russia/moscow-city?iso=20250907. Введите в поиск ваш город и там покажет всё интерактивно и в вашем локальном времени. Так же там показывается направление луны (direction), чтобы понять будет видна луна из вашего окна или нет, можете открыть компас на телефоне и сравнить угол.
Затмение особенно хорошо будет видно в Казахстане и средней части России.
Так же советую скачать приложение Stellarium, оно показано в видео в этом посте, по нему ещё удобно посмотреть когда луна восходит из-за горизонта. Например благодаря ему я узнал что в Москве луна будет восходить изначально очень низко, поэтому стал искать локацию где будет хороший обзор именно на это направление. Оптимальная локация - парк Коломенское, а именно это место. Или например в Алмате луна будет очень высоко во время старта затмения, поэтому его можно смотреть с любой точки в городе.
Так же ТехноШаман устраивает сходку на ВДНХ в Москве в честь этого лунного затмения) Я подъеду и буду под главной аркой где-то к 19:00. Но затмение мы можем и не увидеть, из-за того что луна будет низко.
Чтобы посмотреть когда в вашем городе начнётся затмение, советую открыть сайт https://www.timeanddate.com/eclipse/in/russia/moscow-city?iso=20250907. Введите в поиск ваш город и там покажет всё интерактивно и в вашем локальном времени. Так же там показывается направление луны (direction), чтобы понять будет видна луна из вашего окна или нет, можете открыть компас на телефоне и сравнить угол.
Затмение особенно хорошо будет видно в Казахстане и средней части России.
Так же советую скачать приложение Stellarium, оно показано в видео в этом посте, по нему ещё удобно посмотреть когда луна восходит из-за горизонта. Например благодаря ему я узнал что в Москве луна будет восходить изначально очень низко, поэтому стал искать локацию где будет хороший обзор именно на это направление. Оптимальная локация - парк Коломенское, а именно это место. Или например в Алмате луна будет очень высоко во время старта затмения, поэтому его можно смотреть с любой точки в городе.
Так же ТехноШаман устраивает сходку на ВДНХ в Москве в честь этого лунного затмения) Я подъеду и буду под главной аркой где-то к 19:00. Но затмение мы можем и не увидеть, из-за того что луна будет низко.
👍2🌚2
#prog #rust
Faster linking times with 1.90.0 stable on Linux using the LLD linker
Faster linking times with 1.90.0 stable on Linux using the LLD linker
TL;DR: rustc will start using the LLD linker by default on the x86_64-unknown-linux-gnu
target starting with the next stable release (1.90.0, scheduled for 2025-09-18), which should significantly reduce linking times.
From our prior testing, we don't really expect issues to happen in practice. It is a drop-in replacement for the vast majority of cases, but lld is not bug-for-bug compatible with GNU ld.
In any case, using rust-lld can be disabled if any problem occurs: use the -C linker-features=-lld flag to revert to using the system's default linker.
❤🔥6🎉3🤩1
Forwarded from Doque Embedded
This media is not supported in your browser
VIEW IN TELEGRAM
😁11😭6🥰3🤣2❤🔥1🌚1
#prog #rust #serde #article
Be Careful Zero-Copying Strings with serde
TL;DR: из-за того, что строки во многих форматах передачи данных (JSON, например) требуют экранирования специальных символов, строки с подобными символами не могут быть десериализованы в
Be Careful Zero-Copying Strings with serde
TL;DR: из-за того, что строки во многих форматах передачи данных (JSON, например) требуют экранирования специальных символов, строки с подобными символами не могут быть десериализованы в
&str
(которые указывают на данные из входа). Для того, чтобы поддержать подобные строки, но по мере возможности все же не копировать данные, используйте Cow<str>
с атрибутом #[serde(borrow)]
на поле.💯7❤2👌2