PackedStringArray

Un array compatto di String.

Descrizione

Un array progettato specificamente per contenere String. Impacchetta i dati in modo compatto, in modo da risparmiare memoria per array di grandi dimensioni.

Se si desidera unire le stringhe nell'array, usa String.join().

var string_array = PackedStringArray(["ciao", "mondo"])
var string = " ".join(string_array)
print(string) # "ciao mondo"

Differenze tra gli array impacchettati, gli array tipizzati e gli array non tipizzati: Gli array impacchettati sono generalmente più veloci da iterare e modificare rispetto a un array tipizzato dello stesso tipo (ad esempio PackedStringArray in confronto a Array[String]). Inoltre, gli array impacchettati consumano meno memoria. Come svantaggio, i array impacchettati sono meno flessibili in quanto non offrono molti metodi di convenienza come Array.map(). Gli array tipizzati sono anche loro più veloci da iterare e modificare in confronto ad array non tipizzati.

Nota: Gli array impacchettati sono sempre passati per riferimento. Per ottenere una copia di un array che si può modificare indipendentemente dall'array originale, usare duplicate(). Questo non è il caso per le proprietà e per i metodi integrati. In tali casi l'array impacchettato restituito è una copia, e modificarlo non influenzerà il valore originale. Per aggiornare una proprietà integrata di questo tipo è necessario modificare l'array restituito e poi riassegnarlo alla proprietà.

Nota

Ci sono differenze sostanziali quando si usa questa API con C#. Vedi Differenze dell'API C# rispetto a GDScript per maggiori informazioni.

Tutorial

Costruttori

PackedStringArray

PackedStringArray()

PackedStringArray

PackedStringArray(from: PackedStringArray)

PackedStringArray

PackedStringArray(from: Array)

Metodi

bool

append(value: String)

void

append_array(array: PackedStringArray)

int

bsearch(value: String, before: bool = true)

void

clear()

int

count(value: String) const

PackedStringArray

duplicate()

bool

erase(value: String)

void

fill(value: String)

int

find(value: String, from: int = 0) const

String

get(index: int) const

bool

has(value: String) const

int

insert(at_index: int, value: String)

bool

is_empty() const

bool

push_back(value: String)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

rfind(value: String, from: int = -1) const

void

set(index: int, value: String)

int

size() const

PackedStringArray

slice(begin: int, end: int = 2147483647) const

void

sort()

PackedByteArray

to_byte_array() const

Operatori

bool

operator !=(right: PackedStringArray)

PackedStringArray

operator +(right: PackedStringArray)

bool

operator ==(right: PackedStringArray)

String

operator [](index: int)


Descrizioni dei costruttori

PackedStringArray PackedStringArray() 🔗

Costruisce un PackedStringArray vuoto.


PackedStringArray PackedStringArray(from: PackedStringArray)

Costruisce un PackedStringArray come copia del PackedStringArray specificato.


PackedStringArray PackedStringArray(from: Array)

Costruisce un nuovo PackedStringArray. È possibile passare un Array generico che sarà convertito.


Descrizioni dei metodi

bool append(value: String) 🔗

Aggiunge un elemento alla fine dell'array (pseudonimo di push_back()).


void append_array(array: PackedStringArray) 🔗

Accoda un PackedStringArray alla fine di questo array.


int bsearch(value: String, before: bool = true) 🔗

Trova l'indice di un valore esistente (o l'indice di inserimento che mantiene l'ordine di ordinamento, se il valore non è ancora presente nell'array) utilizzando la ricerca binaria. Facoltativamente, è possibile passare uno specificatore before. Se false, l'indice restituito viene dopo tutte le voci esistenti del valore nell'array.

Nota: Chiamare bsearch() su un array non ordinato provoca un comportamento imprevisto.


void clear() 🔗

Cancella l'array. Ciò equivale a usare resize() con una dimensione di 0.


int count(value: String) const 🔗

Restituisce il numero di volte che un elemento è presente nell'array.


PackedStringArray duplicate() 🔗

Crea una copia dell'array, e la restituisce.


bool erase(value: String) 🔗

Rimuove la prima occorrenza di un valore dall'array e restituisce true. Se il valore non esiste nell'array, nulla accade e viene restituito false. Per rimuovere un elemento in base all'indice, utilizzare invece remove_at().


void fill(value: String) 🔗

Assegna il valore specificato a tutti gli elementi nell'array. Questo può solitamente essere usato insieme a resize() per creare un array con una determinata dimensione ed elementi inizializzati.


int find(value: String, from: int = 0) const 🔗

Cerca un valore nell'array e restituisce il suo indice o -1 se non trovato. Facoltativamente, può essere passato l'indice di ricerca iniziale.


String get(index: int) const 🔗

Restituisce la String all'indice index nell'array. Restituisce una stringa vuota e stampa un errore se l'accesso è fuori limite. Gli indici negativi non sono supportati: considereranno il valore fuori limite e restituitranno una stringa vuota.

Questo metodo è simile all'uso dell'operatore [] (array[index]), eccetto che tale operatore supporta gli indici negativi e provoca un'interruzione dal debugger se viene eseguito un accesso fuori limite.


bool has(value: String) const 🔗

Restituisce true se l'array contiene value.


int insert(at_index: int, value: String) 🔗

Inserisce un nuovo elemento in una determinata posizione nell'array. La posizione deve essere valida o alla fine dell'array (idx == size()).


bool is_empty() const 🔗

Restituisce true se l'array è vuoto.


bool push_back(value: String) 🔗

Accoda un elemento di stringa alla fine dell'array.


void remove_at(index: int) 🔗

Rimuove un elemento dall'array in base all'indice.


int resize(new_size: int) 🔗

Imposta la dimensione dell'array. Se l'array viene ingrandito, riserva gli elementi alla fine dell'array. Se l'array viene rimpicciolito, tronca l'array alla nuova dimensione. Chiamare resize() una sola volta e assegnare i nuovi valori è più veloce che aggiungere nuovi elementi uno alla volta.

Restituisce @GlobalScope.OK in caso di successo, oppure una delle seguenti costanti di Error se questo metodo fallisce: @GlobalScope.ERR_INVALID_PARAMETER se la dimensione è negativa, oppure @GlobalScope.ERR_OUT_OF_MEMORY se le allocazioni falliscono. Usare size() per trovare la dimensione effettiva dell'array dopo il ridimensionamento.


void reverse() 🔗

Inverte l'ordine degli elementi nell'array.


int rfind(value: String, from: int = -1) const 🔗

Cerca nell'array in ordine inverso. Facoltativamente, può essere passato un indice di ricerca iniziale. Se negativo, l'indice di inizio è considerato relativo alla fine dell'array.


void set(index: int, value: String) 🔗

Modifica la String all'indice specificato.


int size() const 🔗

Restituisce il numero di elementi nell'array.


PackedStringArray slice(begin: int, end: int = 2147483647) const 🔗

Restituisce la sezione del PackedStringArray, da begin (incluso) a end (escluso), sotto forma di un nuovo PackedStringArray.

Il valore assoluto di begin e end sarà limitato alla dimensione dell'array, quindi il valore predefinito per end lo suddivide alla dimensione dell'array per impostazione predefinita (ad esempio, arr.slice(1) è un'abbreviazione per arr.slice(1, arr.size())).

Se begin o end sono negativi, saranno relativi alla fine dell'array (ad esempio, arr.slice(0, -2) è un'abbreviazione per arr.slice(0, arr.size() - 2)).


void sort() 🔗

Ordina gli elementi dell'array in ordine crescente.


PackedByteArray to_byte_array() const 🔗

Restituisce un PackedByteArray con ogni stringa codificata come UTF8. Le stringhe vengono terminate con null.


Descrizioni degli operatori

bool operator !=(right: PackedStringArray) 🔗

Restituisce true se i contenuti degli array differiscono.


PackedStringArray operator +(right: PackedStringArray) 🔗

Restituisce un nuovo PackedStringArray con il contenuto di right accodato alla fine di questo array. Per prestazioni migliori, considera invece di usare append_array().


bool operator ==(right: PackedStringArray) 🔗

Restituisce true se il contenuto di entrambi gli array è lo stesso, ovvero hanno tutte le String uguali agli indici corrispondenti.


String operator [](index: int) 🔗

Restituisce la String all'indice index. Gli indici negativi possono essere utilizzati per accedere agli elementi partendo dalla fine. Utilizzare un indice fuori dai limiti dell'array genererà un errore.