PackedStringArray
Un tableau compacté de chaînes de caractères String.
Description
Un tableau spécialement conçu pour contenir des chaînes String. Compacte les données de manière serrée, il sauve de la mémoire pour les grandes tailles de tableaux.
Si vous voulez joindre des chaînes dans le tableau, utilisez String.join().
var tableau_string = PackedStringArray(["bonjour", "monde"])
var string = " ".join(tableau_string)
print(string) # "bonjour monde"
Différences entre les tableaux compactés, les tableaux typés et les tableaux non typés : Les tableaux compactés sont généralement plus rapides pour itérer et modifier par rapport à un tableau typé du même type (par exemple PackedStringArray contre Array[String]). De plus, les tableaux compactés consomment moins de mémoire. À l'inverse, les tableaux compactés sont moins flexibles car ils ne proposent pas autant de méthodes de commodité comme Array.map(). Les tableaux typés sont à leur tour plus rapides pour itérer dessus et modifier que les tableaux non typés.
Note : Les tableaux compactés sont toujours passés par référence. Pour obtenir une copie d'un tableau qui peut être modifié indépendamment du tableau original, utilisez duplicate(). Ceci n'est pas le cas pour les propriétés et les méthodes intégrées. Le tableau compacté renvoyé de ceux-ci est une copie, et le changer n'affectera pas la valeur originale. Pour mettre à jour une propriété intégrée, vous devez modifier le tableau renvoyé, puis l'affecter à nouveau à la propriété.
Note
Il y a des différences notables dans l'utilisation de cette API en C#. Voir Différences de l'API C# par rapport à GDScript pour plus d'informations.
Tutoriels
Constructeurs
PackedStringArray(from: Array) |
Méthodes
void |
append_array(array: PackedStringArray) |
void |
clear() |
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Opérateurs
operator !=(right: PackedStringArray) |
|
operator +(right: PackedStringArray) |
|
operator ==(right: PackedStringArray) |
|
operator [](index: int) |
Descriptions des constructeurs
PackedStringArray PackedStringArray() 🔗
Construit un PackedStringArray vide.
PackedStringArray PackedStringArray(from: PackedStringArray)
Construit un PackedStringArray comme une copie du PackedStringArray donné.
PackedStringArray PackedStringArray(from: Array)
Construit un nouveau PackedStringArray. Optionnellement, vous pouvez passer un Array générique qui sera converti.
Descriptions des méthodes
Ajoute un élément à la fin du tableau (c'est un raccourci vers push_back()).
void append_array(array: PackedStringArray) 🔗
Ajoute un PackedStringArray à la fin de ce tableau.
int bsearch(value: String, before: bool = true) 🔗
Cherche l'index d'une valeur existante (ou l'index d'insertion qui maintient l'ordre de tri, si la valeur n'est pas encore présente dans le tableau) en utilisant la recherche binaire. Optionnellement, un spécificateur before peut être passé. Si false, l'index renvoyé vient après toutes les entrées existantes de la valeur dans le tableau.
Note : Appeler bsearch() sur un tableau non trié résulte en un comportement inattendu.
void clear() 🔗
Efface le contenu du tableau. C'est équivalent à resize() avec une taille de 0.
int count(value: String) const 🔗
Renvoie le nombre de fois qu'un élément apparaît dans le tableau.
PackedStringArray duplicate() 🔗
Crée une copie du tableau, et le renvoie.
Retire la première occurrence d'une valeur du tableau et renvoie true. Si la valeur n'existe pas dans le tableau, rien ne se passe et false est renvoyé. Pour supprimer un élément par index, utilisez remove_at() à la place.
Attribue la valeur donnée à tous les éléments du tableau. Cela peut généralement être utilisé avec resize() pour créer un tableau avec une taille donnée et des éléments initialisés.
int find(value: String, from: int = 0) const 🔗
Recherche dans le tableau pour une valeur et renvoie son index ou -1 si elle n'est pas trouvée. Optionnellement, l'index de recherche initial peut être passé.
String get(index: int) const 🔗
Renvoie le String à l'index donné dans le tableau. Renvoie une chaîne vide et affiche une erreur si l'accès est hors limites. Les indices négatifs ne sont pas supportés, ils considéreront toujours la valeur hors limites et renvoient une chaîne vide.
Ceci est similaire à l'utilisation de l'opérateur [] (array[index]), sauf que l'opérateur supporte les indices négatifs et provoque un stop du débogueur si un accès hors limites est effectué.
bool has(value: String) const 🔗
Renvoie true si le tableau contient value.
int insert(at_index: int, value: String) 🔗
Insérer un nouvel élément à une position donnée dans le tableau. La position doit être valide, ou à la fin du tableau (idx == size()).
Renvoie true si le tableau est vide.
bool push_back(value: String) 🔗
Ajoute une chaine de caractère à la fin du tableau.
Retire l'élément du tableau à l'index donné.
Définit la taille du tableau. Si le tableau est agrandi, réserve des éléments à la fin du tableau. Si le tableau est rétrécit, tronque le tableau à la nouvelle taille. Appeler resize() une fois et attribuer les nouvelles valeurs est plus rapide que l'ajout de nouveaux éléments un par un.
Renvoie @GlobalScope.OK sur le succès, ou une des constantes Error suivantes si cette méthode échoue : @GlobalScope.ERR_INVALID_PARAMETER si la taille est négative, ou @GlobalScope.ERR_OUT_OF_MEMORY si les allocations échouent. Utilisez size() pour trouver la taille réelle du tableau après le redimensionnement.
void reverse() 🔗
Inverse l'ordre des éléments du tableau.
int rfind(value: String, from: int = -1) const 🔗
Cherche le tableau en ordre inverse. Optionnellement, un index de démarrage de recherche peut être passé. Si négatif, l'indice de démarrage est considéré par rapport à la fin du tableau.
void set(index: int, value: String) 🔗
Change la String à la position donnée.
Renvoie le nombre d'éléments dans le tableau.
PackedStringArray slice(begin: int, end: int = 2147483647) const 🔗
Renvoie la tranche du PackedStringArray, de begin (inclusive) à end (exclusive), en tant que nouveau PackedStringArray.
La valeur absolue de begin et end sera bornée à la taille du tableau, de sorte que la valeur par défaut pour end le fait trancher à la taille du tableau par défaut (c.a.d. arr.slice(1) est un raccourci pour arr.slice(1, arr.size())).
Si begin ou end sont négatifs, ils seront par rapport à la fin du tableau (c.a.d. arr.slice(0, -2) est un raccourci pour arr.slice(0, arr.size() - 2)).
void sort() 🔗
Tris les éléments du tableau dans l'ordre croissant.
PackedByteArray to_byte_array() const 🔗
Renvoie un PackedByteArray avec chaque chaîne encodée en UTF-8. Les chaînes se terminent par null.
Descriptions des opérateurs
bool operator !=(right: PackedStringArray) 🔗
Renvoie true si le contenu des tableaux diffère.
PackedStringArray operator +(right: PackedStringArray) 🔗
Renvoie un nouveau PackedStringArray avec le contenu de right ajouté à la fin de ce tableau. Pour de meilleures performances, envisagez d'utiliser append_array() à la place.
bool operator ==(right: PackedStringArray) 🔗
Renvoie true si le contenu des deux tableaux est le même, c'est-à-dire qu'ils ont tous leurs String égaux aux indices correspondants.
String operator [](index: int) 🔗
Renvoie le String à la position index. Les indices négatifs peuvent être utilisés pour accéder aux éléments à partir de la fin. L'utilisation d'un index hors des limites du tableau entraînera une erreur.