Migrering af LeekScript 1 til 2

Migration LeekScript 1 til 2

> LeekScript vejledning

Denne vejledning præsenterer de forskellige punkter, du skal kontrollere, om du vil migrere din AI LeekScript 1 til 2. Se siden på LeekScript 2 for mere information om selve versionen.

Aktivering af LeekScript 2

For at aktivere LeekScript 1 på en gammel AI, skal du blot klikke på "LeekScript 1" til venstre på statuslinjen nederst i editoren. En menu åbnes, og du kan klikke på "LeekScript 2" for at aktivere den. AI vil blive parset med de nye regler direkte.

Standard pass-by-reference

I LeekScript 2, i modsætning til LeekScript 1, sendes alle værdier ved reference, undtagen primitive værdier (tal, booleaner, strenge).

Så du kan fjerne alle @ fra din kode. (bemærk til dato, at kompileringen med @ ikke virker).

Hvis du f.eks. har kodet rekursive algoritmer med arrays, skal du være omhyggelig med manuelt at kopiere de arrays, der sendes som parametre med funktionen clone() ved hvert kald.

Referencer

I LeekScript 1 er det umuligt at lave referencer til et tal, en boolesk eller en tegnstreng. Det vil være nødvendigt at indkapsle disse værdier i en matrix eller et objekt for at reproducere denne adfærd.

Brug af klasser og objekter

Reserverede søgeord

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, så nogle af dem skal ændres om nødvendigt.

Omkostninger i driften

På grund af de nye regler, især pass-by-reference, kan LeekScript 2 forbruge langt færre operationer. Hvis du brugte betingelser for det aktuelle antal operationer, som for eksempel if (getOperations() < 15000000), kan AI opføre sig anderledes.

arrayFilter

arrayFilter-funktionen har nydt godt af en korrektion: den resulterende matrix genindekseres og er derfor ikke længere associativ med visse null-værdier. Vær omhyggelig med at opdatere dine algoritmer, hvis du befinder dig i dette tilfælde.

Operatør ^=

^=-operatoren ændrer betydning: den udtrykte power + assignment-operatoren i LeekScript 1 og udtrykker nu den binære OR-operator i LeekScript 2.