Bladeren bron

Briefly document Vector<> variations

`Packed*Array` aliases seem universally preferred where available, so
a link to the list of types seems appropriate.

`LocalVector` is used sparingly, so mentioning the intent and rough
tradeoff involved seems right for an overview.
Sai Nane 8 maanden geleden
bovenliggende
commit
98ce9b570b

+ 12 - 1
contributing/development/core_and_modules/core_types.rst

@@ -103,7 +103,18 @@ which are equivalent to new, delete, new[] and delete[].
 memnew/memdelete also use a little C++ magic and notify Objects right
 after they are created, and right before they are deleted.
 
-For dynamic memory, use Vector<>.
+For dynamic memory, use Godot's ``Vector<>`` or one of its variations.
+Godot's ``Vector<>`` behaves much like an STL ``Vector<>``, but is simpler,
+thread safe, and uses Copy-On-Write semantics.
+It can be safely passed via public API.
+
+The ``Packed*Array`` :ref:`types <doc_gdscript_packed_arrays>` are aliases for
+specific ``Vector<*>`` types (e.g., ``PackedByteArray``, ``PackedInt32Array``)
+that are accessible via GDScript. Prefer using the ``Packed*Array`` aliases
+when available.
+
+``LocalVector<>`` is a non-COW version, with less overhead. It is intended for
+internal use where the benefits of COW are not needed.
 
 References:
 ~~~~~~~~~~~

+ 2 - 0
tutorials/scripting/gdscript/gdscript_basics.rst

@@ -890,6 +890,8 @@ native or user class, or enum. Nested array types (like ``Array[Array[int]]``) a
     The only exception was made for the ``Array`` (``Array[Variant]``) type, for user convenience
     and compatibility with old code. However, operations on untyped arrays are considered unsafe.
 
+.. _doc_gdscript_packed_arrays:
+
 Packed arrays
 ^^^^^^^^^^^^^