Как слабые ссылки реализованы?

Единственным отличием будет то, что вы не можете переназначить Ray_Techniques другому значению, поскольку оно определено как const. Класс, определенный как class Ray_Techiques {}, позволит вам переназначить имя класса Ray_Techniques на что-то другое.

Из MDN :

Объявление const создает доступную только для чтения ссылку на значение. Это не означает, что значение, которое оно содержит, является неизменным, просто то, что идентификатор переменной не может быть переназначен. Например, в случае, когда содержимое является объектом, это означает, что содержимое объекта (например, его свойства) может быть изменено.

blockquote>

По моему мнению, объявление const снижает читабельность кода по сравнению с именованным классом.

17
задан Brian Rasmussen 23 April 2009 в 08:05
поделиться

3 ответа

Не уверен, что я понял ваш вопрос, но вы можете взглянуть на реализацию класса WeakReference и его ссылки на суперкласс в Java. Это хорошо прокомментировано, и вы можете видеть, что оно имеет поле, специально обработанное GC, и другое поле, используемое непосредственно VM.

5
ответ дан 30 November 2019 в 14:12
поделиться

В .NET, когда WeakReference создан, GC запрашивает маркер / непрозрачный токен, представляющий ссылку. Затем, при необходимости, WeakReference использует этот дескриптор, чтобы запросить GC, если этот дескриптор все еще действителен (т. Е. Оригинальный объект все еще существует) - и, если это так, он может получить фактическую ссылку на объект.

это создание списка токенов / дескрипторов для адресов объектов (и, по-видимому, ведение этого списка во время дефрагментации и т. д.).

Я не уверен, что на 100% понимаю три маркера, поэтому не решаюсь, какой (если таковой имеется) это ближайший к.

6
ответ дан 30 November 2019 в 14:12
поделиться

Python PEP 205 дает достойное объяснение того, как слабые ссылки должны вести себя в Python, и это дает некоторое представление о том, как их можно реализовать. Поскольку слабая ссылка является неизменной, вы можете иметь только одну ссылку для каждого объекта, на которую вы раздаете ссылки по мере необходимости. Таким образом, когда объект уничтожается, только одна слабая ссылка должна быть признана недействительной.

2
ответ дан 30 November 2019 в 14:12
поделиться
Другие вопросы по тегам:

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