class_dictionary.rst 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the Dictionary.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_Dictionary:
  6. Dictionary
  7. ==========
  8. Dictionary type.
  9. Description
  10. -----------
  11. Dictionary type. Associative container which contains values referenced by unique keys. Dictionaries are always passed by reference.
  12. Erasing elements while iterating over them **is not supported**.
  13. Creating a dictionary:
  14. ::
  15. var d = {4: 5, "A key": "A value", 28: [1, 2, 3]}
  16. To add a key to an existing dictionary, access it like an existing key and assign to it:
  17. ::
  18. d[4] = "hello" # Add integer 4 as a key and assign the String "hello" as its value.
  19. d["Godot"] = 3.01 # Add String "Godot" as a key and assign the value 3.01 to it.
  20. Tutorials
  21. ---------
  22. - `#dictionary <../getting_started/scripting/gdscript/gdscript_basics.html#dictionary>`_ in :doc:`../getting_started/scripting/gdscript/gdscript_basics`
  23. Methods
  24. -------
  25. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  26. | void | :ref:`clear<class_Dictionary_method_clear>` **(** **)** |
  27. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`Dictionary<class_Dictionary>` | :ref:`duplicate<class_Dictionary_method_duplicate>` **(** :ref:`bool<class_bool>` deep=False **)** |
  29. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`bool<class_bool>` | :ref:`empty<class_Dictionary_method_empty>` **(** **)** |
  31. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`bool<class_bool>` | :ref:`erase<class_Dictionary_method_erase>` **(** :ref:`Variant<class_Variant>` key **)** |
  33. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`Variant<class_Variant>` | :ref:`get<class_Dictionary_method_get>` **(** :ref:`Variant<class_Variant>` key, :ref:`Variant<class_Variant>` default=Null **)** |
  35. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`bool<class_bool>` | :ref:`has<class_Dictionary_method_has>` **(** :ref:`Variant<class_Variant>` key **)** |
  37. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`bool<class_bool>` | :ref:`has_all<class_Dictionary_method_has_all>` **(** :ref:`Array<class_Array>` keys **)** |
  39. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`int<class_int>` | :ref:`hash<class_Dictionary_method_hash>` **(** **)** |
  41. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`Array<class_Array>` | :ref:`keys<class_Dictionary_method_keys>` **(** **)** |
  43. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`int<class_int>` | :ref:`size<class_Dictionary_method_size>` **(** **)** |
  45. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Array<class_Array>` | :ref:`values<class_Dictionary_method_values>` **(** **)** |
  47. +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
  48. Method Descriptions
  49. -------------------
  50. .. _class_Dictionary_method_clear:
  51. - void **clear** **(** **)**
  52. Clear the dictionary, removing all key/value pairs.
  53. ----
  54. .. _class_Dictionary_method_duplicate:
  55. - :ref:`Dictionary<class_Dictionary>` **duplicate** **(** :ref:`bool<class_bool>` deep=False **)**
  56. Creates a copy of the dictionary, and returns it.
  57. ----
  58. .. _class_Dictionary_method_empty:
  59. - :ref:`bool<class_bool>` **empty** **(** **)**
  60. Returns ``true`` if the dictionary is empty.
  61. ----
  62. .. _class_Dictionary_method_erase:
  63. - :ref:`bool<class_bool>` **erase** **(** :ref:`Variant<class_Variant>` key **)**
  64. Erase a dictionary key/value pair by key. Returns ``true`` if the given key was present in the dictionary, ``false`` otherwise. Does not erase elements while iterating over the dictionary.
  65. ----
  66. .. _class_Dictionary_method_get:
  67. - :ref:`Variant<class_Variant>` **get** **(** :ref:`Variant<class_Variant>` key, :ref:`Variant<class_Variant>` default=Null **)**
  68. Returns the current value for the specified key in the ``Dictionary``. If the key does not exist, the method returns the value of the optional default argument, or ``null`` if it is omitted.
  69. ----
  70. .. _class_Dictionary_method_has:
  71. - :ref:`bool<class_bool>` **has** **(** :ref:`Variant<class_Variant>` key **)**
  72. Returns ``true`` if the dictionary has a given key.
  73. ----
  74. .. _class_Dictionary_method_has_all:
  75. - :ref:`bool<class_bool>` **has_all** **(** :ref:`Array<class_Array>` keys **)**
  76. Returns ``true`` if the dictionary has all of the keys in the given array.
  77. ----
  78. .. _class_Dictionary_method_hash:
  79. - :ref:`int<class_int>` **hash** **(** **)**
  80. Returns a hashed integer value representing the dictionary contents. This can be used to compare dictionaries by value:
  81. ::
  82. var dict1 = {0: 10}
  83. var dict2 = {0: 10}
  84. # The line below prints `true`, whereas it would have printed `false` if both variables were compared directly.
  85. print(dict1.hash() == dict2.hash())
  86. ----
  87. .. _class_Dictionary_method_keys:
  88. - :ref:`Array<class_Array>` **keys** **(** **)**
  89. Returns the list of keys in the ``Dictionary``.
  90. ----
  91. .. _class_Dictionary_method_size:
  92. - :ref:`int<class_int>` **size** **(** **)**
  93. Returns the size of the dictionary (in pairs).
  94. ----
  95. .. _class_Dictionary_method_values:
  96. - :ref:`Array<class_Array>` **values** **(** **)**
  97. Returns the list of values in the ``Dictionary``.