Что является NSObject isEqual: и функция значения по умолчанию хеша?

На x86, для цикличного выполнения может быть сделан на уровне ассемблера, не делая некоторое время цикл. цикл инструкция уменьшает значение регистра ecx и переходит к операнду, если ecx больше, чем 0, это ничего не делает иначе. Это - классик для цикла.

mov ecx, 0x00000010h
loop_start:
;loop body
loop loop_start
;end of loop
28
задан Mark Amery 27 August 2013 в 21:00
поделиться

1 ответ

Я предполагаю, что NSObject isEquals использует оператор == , а хэш использует адрес памяти.

Метод isEquals никогда не должен использовать хэш в качестве абсолютного теста на равенство. Гарантируется наличие двух объектов с одинаковым hashCode , если вы ищете достаточное количество объектов (просто создайте более 2 ^ 32 разных объектов, и по крайней мере два из них будут иметь одинаковый хэш ]).

Другими словами, хэш требует следующей спецификации: если два объекта равны, то их хэш должен быть равным; однако, если значения хэша двух объектов равны, они не обязательно равны.

В качестве подсказки:

4
ответ дан 28 November 2019 в 03:30
поделиться
Другие вопросы по тегам:

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