virtualx-engine-docs/_sources/classes/class_weakref.rst.txt
2024-10-23 09:41:33 -07:00

56 lines
2.5 KiB
ReStructuredText

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/WeakRef.xml.
.. _class_WeakRef:
WeakRef
=======
**Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
Holds an :ref:`Object<class_Object>`, but does not contribute to the reference count if the object is a reference.
.. rst-class:: classref-introduction-group
Description
-----------
A weakref can hold a :ref:`Reference<class_Reference>`, without contributing to the reference counter. A weakref can be created from an :ref:`Object<class_Object>` using :ref:`@GDScript.weakref<class_@GDScript_method_weakref>`. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released.
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+-------------------------------+------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`get_ref<class_WeakRef_method_get_ref>` **(** **)** |const| |
+-------------------------------+------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_WeakRef_method_get_ref:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **get_ref** **(** **)** |const|
Returns the :ref:`Object<class_Object>` this weakref is referring to. Returns ``null`` if that object no longer exists.
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`