Документация MSDN описывает
System.Object.GetHashCode
так:
РеализацияЭто ещё один случай многозначного использования слова "уникальный". Предполагаемое значение: "для каждого строкового значения возвращается один и тот же хэш-код".GetHashCode
, предоставляемая классомString
, возвращает уникальные хэш-коды для уникальных строковых значений.
Даже хотя "уникальный" означает "один и только один", домен (предметная область), к которому применяется термин, часто не указывается - как и в этом случае, где доменом является "все хэш-коды, возвращаемые для конкретного строкового значения". Если вы вместо этого подумаете о такой области: "все хэш-коды, возвращаемые для всех строковых значений", то вы можете ошибочно заключить, что никакие две строки не имеют одинаковых хэш-значений.
Ещё одно конфликтующее значение "уникальный" - это "вы каждый раз получаете одно и то же значение" против "вы каждый раз получаете разные значения":
GetCurrentProcessId
возвращает уникальное значение, идентифицирующее процесс. При каждом вызове вы получите одно и то же значение.CoCreateGuid
возвращает уникальный GUID. Вы получаете разные значения при каждом вызове.
malloc(0)
(прим.пер.: грубый аналог GetMem(Result, 0)
) разрешалось возвращать nil или "уникальный указатель". Что означает здесь слово "уникальный"? Означает ли это, что все значения, отличные от nil, равны между собой? Могу я сделать Assert(malloc(0) = malloc(0))
? Или же это означает, что не nil значение будет отличаться от любого другого возвращаемого значения malloc
?В технической поправке №1 эта неоднозначность была разрешена удалением слова "уникальный". Вместо этого спецификация говорит: "как если размер был бы ненулевым" - что делает очевидным, что правильной была вторая интерпретация.
Моё предложение: не используйте слово "уникальный". Оно слишком многозначно.
Комментариев нет:
Отправить комментарий
Можно использовать некоторые HTML-теги, например:
<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>
Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.
Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.
Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.
Примечание. Отправлять комментарии могут только участники этого блога.