Как интегрировать сканер штрих-кода Zxing без установки фактического приложения zxing (не удается разрешить символ: .android.CaptureActivity)?

он не удаляется из WeakSet. Почему это?

Скорее всего потому, что сборщик мусора еще не запущен. Тем не менее, вы говорите, что используете Traceur, поэтому просто может быть, что они не поддерживаются должным образом. Интересно, как console может показать содержимое WeakSet в любом случае.

В чем смысл добавлять объекты непосредственно к WeakSets?

Нет смысла добавлять литералы объектов к WeakSet s.

Что такое практическое использование WeakSet, если мы даже не можем его прокручивать или не получаем текущий размер?

< / blockquote>

Все, что вы можете получить, это один бит информации: Является ли объект (или вообще, значение), содержащийся в наборе?

Это может быть полезно в ситуациях, когда вы хотите «пометить», объекты, фактически не изменяя их (устанавливая на них свойство). Многие алгоритмы содержат какое-то «если x уже было замечено» условие (возможно, обнаружение цикла JSON.stringify может быть хорошим примером), а когда вы работаете с предоставленными пользователем значениями, используйте Set / WeakSet было бы целесообразно. Преимущество WeakSet здесь в том, что его содержимое может быть собрано в мусор, пока ваш алгоритм все еще работает, поэтому он помогает сократить потребление памяти (или даже предотвращает утечки), когда вы имеете дело с большим количеством данных, которые лениво (возможно даже асинхронно).

29
задан TofferJ 2 August 2017 в 15:14
поделиться