Browse Source

Add code example for weakref

(cherry picked from commit 4f19eea5c9b38d0f374a5cc248832ae9ccf83445)
skyace65 4 năm trước cách đây
mục cha
commit
db822fbf39
1 tập tin đã thay đổi với 16 bổ sung2 xóa
  1. 16 2
      getting_started/scripting/gdscript/gdscript_basics.rst

+ 16 - 2
getting_started/scripting/gdscript/gdscript_basics.rst

@@ -1337,8 +1337,22 @@ freed when no longer in use. No garbage collector exists, just
 reference counting. By default, all classes that don't define
 inheritance extend **Reference**. If this is not desired, then a class
 must inherit :ref:`class_Object` manually and must call ``instance.free()``. To
-avoid reference cycles that can't be freed, a ``weakref`` function is
-provided for creating weak references.
+avoid reference cycles that can't be freed, a :ref:`class_WeakRef` function is
+provided for creating weak references. Here is an example:
+
+::
+
+    extends Node
+
+    var my_node_ref
+
+    func _ready():
+        my_node_ref = weakref(get_node("MyNode"))
+
+    func _this_is_called_later():
+        var my_node = my_node_ref.get_ref()
+        if my_node:
+            my_node.do_something()
 
 Alternatively, when not using references, the
 ``is_instance_valid(instance)`` can be used to check if an object has been