PackedFloat64Array

Un array compatto di valori in virgola mobile a 64 bit.

Descrizione

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

Se è necessario impacchettare valori in virgola mobile a 32 bit, vedi PackedFloat32Array.

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

PackedFloat64Array

PackedFloat64Array()

PackedFloat64Array

PackedFloat64Array(from: PackedFloat64Array)

PackedFloat64Array

PackedFloat64Array(from: Array)

Metodi

bool

append(value: float)

void

append_array(array: PackedFloat64Array)

int

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

void

clear()

int

count(value: float) const

PackedFloat64Array

duplicate()

bool

erase(value: float)

void

fill(value: float)

int

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

float

get(index: int) const

bool

has(value: float) const

int

insert(at_index: int, value: float)

bool

is_empty() const

bool

push_back(value: float)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

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

void

set(index: int, value: float)

int

size() const

PackedFloat64Array

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

void

sort()

PackedByteArray

to_byte_array() const

Operatori

bool

operator !=(right: PackedFloat64Array)

PackedFloat64Array

operator +(right: PackedFloat64Array)

bool

operator ==(right: PackedFloat64Array)

float

operator [](index: int)


Descrizioni dei costruttori

PackedFloat64Array PackedFloat64Array() 🔗

Costruisce un PackedFloat64Array vuoto.


PackedFloat64Array PackedFloat64Array(from: PackedFloat64Array)

Costruisce un PackedFloat64Array come copia del PackedFloat64Array specificato.


PackedFloat64Array PackedFloat64Array(from: Array)

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


Descrizioni dei metodi

bool append(value: float) 🔗

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


void append_array(array: PackedFloat64Array) 🔗

Accoda un PackedFloat64Array alla fine di questo array.


int bsearch(value: float, 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.

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


void clear() 🔗

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


int count(value: float) const 🔗

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

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


PackedFloat64Array duplicate() 🔗

Crea una copia dell'array, e la restituisce.


bool erase(value: float) 🔗

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().

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


void fill(value: float) 🔗

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: float, from: int = 0) const 🔗

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

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


float get(index: int) const 🔗

Restituisce il float a 64 bit all'indice index nell'array. Se index è fuori limite o negativo, questo metodo fallisce e restituisce 0.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: float) const 🔗

Restituisce true se l'array contiene value.

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


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

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

Appende un elemento 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: float, from: int = -1) const 🔗

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

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


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

Modifica il float all'indice specificato.


int size() const 🔗

Restituisce il numero di elementi nell'array.


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

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

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.

Nota: @GDScript.NAN non si comporta come altri numeri. Pertanto, i risultati di questo metodo potrebbero non essere accurati se vengono inclusi i NaN.


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à float64_array.size() * 8.


Descrizioni degli operatori

bool operator !=(right: PackedFloat64Array) 🔗

Restituisce true se i contenuti degli array differiscono.


PackedFloat64Array operator +(right: PackedFloat64Array) 🔗

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


bool operator ==(right: PackedFloat64Array) 🔗

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


float operator [](index: int) 🔗

Restituisce il float 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.