#LeekScript4 > LeekScript
LeekScript 4 é a quarta versão da linguagem LeekScript, lançada em 1º de julho de 2022. Esta página resume todas as novidades trazidas por esta versão.
Nas versões 1 a 3 do LeekScript, os arrays eram tanto listas ([1, 2, 3, 4]) quanto tabelas associativas (['a': 5, 'b': 12]). A partir do LeekScript 4, os dois aspectos são separados em dois tipos diferentes: listas (Array) e tabelas (Map). Esses dois novos tipos são mais eficientes do que o antigo tipo comum e oferecem maior clareza no uso.
Uma lista Array é uma seqüência contínua de elementos, começando no índice 0. Eles são equivalentes a ArrayList de Java ou vector de C++. Você pode acessar rapidamente um elemento com sua posição, inserir/excluir um elemento em qualquer posição.
array[10] = v.Map).Array usa todas as funções da categoria "Lista" da documentação.Uma tabela Map é um objeto que relaciona uma chave a um valor. Eles são equivalentes a HashMap de Java ou unordered_map de C++, os pares de (chave, valor) não são ordenados. As chaves podem ser de qualquer tipo: número (inteiro ou real), cadeia de caracteres, objeto, etc. Podemos recuperar rapidamente um valor associado a uma determinada chave. Este novo tipo substitui o aspecto "associativo" dos antigos arrays
Mapa utiliza todas as funções da categoria "Tabela" da documentação, prefixada por "mapa".var tabela = [:]var tabela = new Map()arraySome(list, predicate): retorna true se o predicado retornar true para pelo menos um elemento da lista.arrayEvery(list, predicate): retorna true se o predicado retornar true para todos os elementos da lista.removeAll(list, element): remove todos os elementos "element" da lista.arrayFrequencies(list): retorna uma tabela associando (elemento => quantidade).arrayChunk(list, size): retorna uma lista contendo sub-listas de tamanho N.arrayUnique(list): retorna um novo array sem duplicatas.arrayRandom(list, n): retorna uma lista de N elementos aleatórios.Sendo as novas listas e cartões muito mais eficientes e leves nas operações, foi necessário restabelecer um limite ao nível da RAM (memória de trabalho do programa). De fato, com muito pouca operação é possível preencher gigabytes de RAM facilmente.
O limite de RAM é de 100 MB para cada IA (entidade + convocação) por luta, o que corresponde a 12.500.000 itens de lista, mesa ou objeto. Este limite é efetivo no LS4 porque as tabelas antigas não utilizam este sistema de RAM, elas não precisam dele porque seu consumo de operação é grande o suficiente.
As funções getMaxRAM() e getUsedRAM() são adicionadas para monitorar seu consumo de RAM em tempo real.
Os inteiros agora são representados em 64 bits em vez de 32 antes (em todas as versões do LeekScript). O aumento permite fazer cálculos com números maiores e permite ter mais bits para manipulações binárias.
A sintaxe "Função de seta" agora está disponível para escrever funções anônimas de maneira mais simples:
Em construtores, métodos e métodos estáticos, agora é possível usar valores padrão para cada parâmetro:
Duas novas possibilidades são adicionadas às listas de acesso:
list[-1] retorna o último, list[-2] retorna o penúltimo.list[10:20] retorna uma nova lista contendo os elementos da posição 10 (inclusive) à 20 (exclusiva).list[10:20:3] retorna os elementos na posição 10, 13, 16, 19.list[20:10:-3] retorna os elementos na posição 20, 17, 14, 11arraySlice(start, end, increment) que substitui subArray tem o mesmo comportamento da sintaxe list[start:end:increment].##Chan
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.