Android Studio импортирует существующие модульные тесты «Не удается найти информацию об инструментах»

Из на той же странице, раздел «Почему слабая карта?» :

Опытный программист JavaScript заметит, что этот API может быть реализован в JavaScript с двумя массивы (один для ключей, один для значений), разделяемый четырьмя API-методами. Такая реализация будет иметь два основных неудобства. Первый - это поиск O (n) (n - количество ключей на карте). Второй - проблема утечки памяти. С помощью вручную написанных карт массив ключей будет содержать ссылки на ключевые объекты, не позволяя им собирать мусор. В native WeakMaps ссылки на ключевые объекты хранятся «слабо», что означает, что они не предотвращают сбор мусора, если не будет никакой другой ссылки на объект.

Из-за того, что ссылки являются слабых, ключи WeakMap не перечислимы (т. е. нет метода, предоставляющего вам список ключей). Если они были, список будет зависеть от состояния сбора мусора, введя недетерминизм.

blockquote>

[И поэтому у них также нет свойства size]

Если вы хотите иметь список ключей, вы должны сохранить его самостоятельно. Существует также предложение ECMAScript с целью введения простых множеств и карт, которые не будут использовать слабые ссылки и будут перечислимы.

blockquote>

- это будет "normal" Map s . Не упомянутые в MDN, но в соглашении гармонии , у них также есть items, keys и values методы генератора и реализуют интерфейс Iterator .

60
задан AJD 25 April 2016 в 22:33
поделиться