> 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.
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.
array[10] = v.Map).Array utilizza tutte le funzioni della categoria "Elenco" della documentazione.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
Map utilizza tutte le funzioni della categoria "Tabella" della documentazione, preceduto da "map".var tabella = [:]var table = new Map()arraySome(list, predicate): restituisce true se predicate restituisce true per almeno un elemento della lista.arrayEvery(list, predicate): restituisce true se predicate restituisce true per tutti gli elementi della lista.removeAll(list, element): rimuove tutti gli elementi "element" dalla lista.arrayFrequencies(list): restituisce una tabella di associazione (elemento => quantità).arrayChunk(list, size): restituisce una lista contenente sottoliste di dimensione N.arrayUnique(list): restituisce un nuovo array senza duplicati.arrayRandom(list, n): restituisce una lista di N elementi casuali.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.
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.
La sintassi "Freccia funzione" è ora disponibile per scrivere funzioni anonime in modo più semplice:
Nei costruttori, nei metodi e nei metodi statici è ora possibile utilizzare i valori predefiniti per ogni parametro:
Due nuove possibilità vengono aggiunte alle liste di accesso:
list[-1] restituisce l'ultimo, list[-2] restituisce il penultimo.list[10:20] restituisce un nuovo elenco contenente gli elementi dalla posizione 10 (inclusa) alla 20 (esclusa).list[10:20:3] restituisce gli elementi alla posizione 10, 13, 16, 19.list[20:10:-3] restituisce gli elementi alla posizione 20, 17, 14, 11arraySlice(start, end, increment) che sostituisce subArray ha lo stesso comportamento della sintassi list[start:end:increment].##Can
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.