PackedInt64Array

Un array compatto di interi a 64 bit.

Descrizione

Un array progettato specificamente per contenere valori interi a 64 bit. Impacchetta i dati in modo compatto, in modo da risparmiare memoria per array di grandi dimensioni.

Nota: Questo tipo memorizza interi a 64 bit con segno, il che significa che può assumere valori nell'intervallo [-2^63, 2^63 - 1], ovvero [-9223372036854775808, 9223372036854775807]. I valori oltre i limiti saranno avvolti. Se è necessario soltanto impacchettare interi a 32 bit, vedi PackedInt32Array per un'alternativa più efficiente per la memoria.

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 PackedInt64Array in confronto a Array[int]). 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.

Costruttori

PackedInt64Array

PackedInt64Array()

PackedInt64Array

PackedInt64Array(from: PackedInt64Array)

PackedInt64Array

PackedInt64Array(from: Array)

Metodi

bool

append(value: int)

void

append_array(array: PackedInt64Array)

int

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

void

clear()

int

count(value: int) const

PackedInt64Array

duplicate()

bool

erase(value: int)

void

fill(value: int)

int

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

int

get(index: int) const

bool

has(value: int) const

int

insert(at_index: int, value: int)

bool

is_empty() const

bool

push_back(value: int)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

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

void

set(index: int, value: int)

int

size() const

PackedInt64Array

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

void

sort()

PackedByteArray

to_byte_array() const

Operatori

bool

operator !=(right: PackedInt64Array)

PackedInt64Array

operator +(right: PackedInt64Array)

bool

operator ==(right: PackedInt64Array)

int

operator [](index: int)


Descrizioni dei costruttori

PackedInt64Array PackedInt64Array() 🔗

Costruisce un PackedInt64Array vuoto.


PackedInt64Array PackedInt64Array(from: PackedInt64Array)

Costruisce un PackedInt64Array come copia del PackedInt64Array specificato.


PackedInt64Array PackedInt64Array(from: Array)

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


Descrizioni dei metodi

bool append(value: int) 🔗

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


void append_array(array: PackedInt64Array) 🔗

Accoda un PackedInt64Array alla fine di questo array.


int bsearch(value: int, 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: int) const 🔗

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


PackedInt64Array duplicate() 🔗

Crea una copia dell'array, e la restituisce.


bool erase(value: int) 🔗

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: int) 🔗

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: int, 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.


int get(index: int) const 🔗

Restituisce l'intero a 64 bit all'indice index nell'array. Se index è fuori limite o negativo, questo metodo fallisce e restituisce 0.

Questo metodo è simile (ma non identico) all'operatore []. In particolare, quando questo metodo fallisce, non interrompe l'esecuzione del progetto se eseguito dall'editor.


bool has(value: int) const 🔗

Restituisce true se l'array contiene value.


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

Inserisce un nuovo intero in una posizione specificata 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: int) 🔗

Accoda un valore all'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: int, 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: int) 🔗

Modifica l'intero all'indice specificato.


int size() const 🔗

Restituisce il numero di elementi nell'array.


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

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

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 una copia dei dati convertiti in un PackedByteArray, dove ogni elemento è stato codificato come 8 byte.

La dimensione del nuovo array sarà int64_array.size() * 8.


Descrizioni degli operatori

bool operator !=(right: PackedInt64Array) 🔗

Restituisce true se i contenuti degli array differiscono.


PackedInt64Array operator +(right: PackedInt64Array) 🔗

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


bool operator ==(right: PackedInt64Array) 🔗

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


int operator [](index: int) 🔗

Restituisce l'int 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.