LeekScript 4

LeekScript 4

> LeekScript

LeekScript 4 è la quarta versione del linguaggio LeekScript, rilasciata il 1 luglio 2022. Questa pagina riassume tutte le nuove funzionalità apportate da questa versione.

Array e mappa separati

Nelle versioni di LeekScript da 1 a 3, gli array erano sia liste ([1, 2, 3, 4]) che tabelle associative (['a': 5, 'b': 12]) . A partire da LeekScript 4, i due aspetti sono separati in due diversi tipi: elenchi (Array) e tabelle (Map). Questi due nuovi tipi sono più efficienti del vecchio tipo comune e danno maggiore chiarezza nell'uso.

Una lista Array è una sequenza continua di elementi, a partire dall'indice 0. Sono equivalenti a ArrayList di Java o vector di C++. Puoi accedere rapidamente a un elemento con la sua posizione, inserire/eliminare un elemento in qualsiasi posizione.

Una tabella Map è un oggetto che mette in relazione una chiave con un valore. Sono equivalenti a HashMap di Java o unordered_map di C++, le coppie di (chiave, valore) non sono ordinate. Le chiavi possono essere di qualsiasi tipo: numero (intero o reale), stringa di caratteri, oggetto, ecc. Possiamo recuperare rapidamente un valore associato a una determinata chiave. Questo nuovo tipo sostituisce l'aspetto "associativo" dei vecchi array

Nuove funzioni per le liste

Feedback sul limite della RAM

Essendo le nuove liste e schede molto più efficienti e leggere nelle operazioni, è stato necessario ristabilire un limite a livello della RAM (memoria di lavoro del programma). Infatti, con pochissime operazioni è possibile riempire facilmente gigabyte di RAM.

Il limite di RAM è fissato a 100 MB per ogni AI (entità + evocazione) per combattimento, che corrisponde a 12.500.000 voci di elenchi, tabelle o oggetti. Questo limite è effettivo in LS4 perché le vecchie tabelle non usano questo sistema RAM, non ne hanno bisogno perché il loro consumo di operazioni è abbastanza grande.

Le funzioni getMaxRAM() e getUsedRAM() vengono aggiunte per monitorare il consumo di RAM in tempo reale.

Numeri interi a 64 bit invece di 32

I numeri interi sono ora rappresentati su 64 bit invece di 32 prima (in tutte le versioni di LeekScript). L'incremento permette di fare calcoli con numeri più grandi e permette di avere più bit per manipolazioni binarie.

Funzioni freccia

La sintassi "Freccia funzione" è ora disponibile per scrivere funzioni anonime in modo più semplice:

Impostazioni predefinite

Nei costruttori, nei metodi e nei metodi statici è ora possibile utilizzare i valori predefiniti per ogni parametro:

Accesso all'intervallo di elenchi e indici negativi

Due nuove possibilità vengono aggiunte alle liste di accesso:

##Can