LeekScript 2

LeekScript 2

LeekScript 2 (tidligere LeekScript 1.1) er den anden version af LeekScript, sproget i Leek Wars, udgivet den 28. februar 2021. Det har til formål at rydde op i sproget, foretage rettelser og tilføje orienterede programmeringsobjekter.

Præsentation

Da der laves dybe ændringer i måden sproget fungerer på, er dette en version uden bagudkompatibilitet, som aktiveres manuelt af brugeren i editoren.

Version 2 er et skridt mod den fremtidige version, der blev annonceret i 2016. Mange planlagte funktioner er derfor til stede i version 2, hvilket gør det muligt at avancere sproget gradvist, og disse funktioner er meget gavnlige til kodning af kompleks AI.

En dedikeret migreringshjælpeside er tilgængelig her: LeekScript 1 til 2 Migration.

Nyankomne

Objektorienteret programmering

Tilføjet objektorienteret programmering: klasser og objekter. Se siden Klasser og objekter for al dokumentation om denne tilføjelse.

Søgeordene ny, klasse, udvider, statisk, offentlig, beskyttet, privat, implementer, grænseflade, konstruktør, dette , super og instanceof er reserveret til OOP og er derfor ikke længere tilgængelige for variabel- eller funktionsnavne.

Bestå ved reference

Ikke-primitive værdier, dvs. arrays og objekter sendes som standard som reference. Primitive værdier (tal, boolean, streng) kopieres altid.

@-syntaksen bruges ikke længere og er derfor forældet overalt. Det er ikke muligt i LeekScript 2 at oprette referencer til en primitiv værdi.

Referencer i tabeller

Evne til at tilføje referencer i arrays (og objekter), hvilket gør det muligt at skabe komplekse og/eller rekursive strukturer til en rimelig pris.

Eksempler på datastrukturer, der er svære at opnå i 1 og meget nemme i 2:

clone() funktion

Tilføjet en "clone(value, [level])"-funktion for at klone en værdi præcist:

Flere fejl

Flere semantiske fejl returnerede i editoren i stedet for kun én (også tilgængelig i LS 1).

![](/image/encyclopedia/multiple_errors_2.png)

![](/image/encyclopedia/multiple_errors_1.png)

Fuld opkaldsstak

Den fulde opkaldsstak vises under hver fejl i stedet for kun én linje før (også tilgængelig i LS 1).

![](/image/encyclopedia/stacktrace.png)

Semikolon er ikke påkrævet

Men det er selvfølgelig altid muligt at bruge det. (fås også i LS 1)

RAM-størrelsesgrænsen er fjernet

Arraystørrelsesgrænsen fjernes, idet omkostningerne ved operationer er tilstrækkelige til at begrænse deres brug.

Rettelser

arrayFilter

Fixed arrayFilter: array er korrekt genindekseret uden at efterlade nulværdier.

Kæde "\\\\"

Rettet escape af strengen "\\", som korrekt viser en enkelt \ i stedet for to.

Erklæring af globaler

Ret på globale erklæringer på tværs af flere filer.

Operatør ^=

Rettet ^=-operator, der blev den binære ELLER i stedet for potensen.

Shuffle-funktion

Bland-funktionen tager højde for den tilfældige talgenerator, der er forbundet til kampfrøet og er derfor deterministisk for samme frø. Det kan forårsage variationer mellem to kampe genereret fra det samme frø, hvilket påvirker testene.