La classe Variant

À propos

Le type Variant est le plus important de Godot, la classe la plus importante dans le moteur. Un Variant prend seulement 20bytes en mémoire et peut stocker presque tous les types du moteur. Les Variants sont rarement utilisé pour stocker des informations sur une longue période de temps, à la place ils sont utilisés principalement pour la communication, l’édition, la sérialisation et plus générelement déplacer des données.

Un Variant peu :

  • Stocker presque tout type de données
  • Effectuer des opérations entre plusieurs « Variants » (GDScript utilise le type Variant comme type de données atomique/natif).
  • Etre crypté (hash) , afin de pouvoir le comparer rapidement à d’autres variantes
  • Être utilisé pour convertir en toute sécurité différents types de données
  • Être utilisé pour abstraire les appels de méthodes et leurs arguments (Godot exporte toutes ses fonctions en utilisant des Variants)
  • Être utilisé pour différer les appels (de fonction) ou déplacer des données entre les threads.
  • Être sérialisé en binaire et stocké sur le disque, ou transféré via le réseau.
  • Être sérialisé en texte et utilisé pour imprimer des valeurs et des paramètres modifiables.
  • Utilisable comme une variable (propriété) exportée, afin que l’éditeur puisse la modifier de façon universelle.
  • Être utilisé dans les dictionnaires, les tableaux, les parseurs , etc.

Fondamentalement, grâce à la classe Variant, écrire Godot lui-même était une tâche beaucoup plus facile, car elle permet des constructions très dynamiques, non triviales en C ++, avec peu d’effort. Devenez un ami des Variants dès aujourd’hui.

Références :

Conteneurs : Dictionnaire et Tableau

Les deux sont implémentés à l’aide de variants. Un Dictionary peut correspondre à n’importe quel type de données utilisé comme clé pour tout autre type de données. Un Array ne contient qu’un tableau de variants. Bien entendu, un variant peut également contenir un Dictionary et un Array, ce qui le rend encore plus flexible.

Les modifications apportées à un conteneur modifieront toutes les références à celui-ci. Un Mutex doit être créé pour le verrouiller si l’on souhaite un accès via plusieurs threads.

Le support du mode Copy-on-write (COW) pour les conteneurs a été abandonné avec Godot 3.0.