Migrerer LeekScript 1 til 2

Migrering LeekScript 1 til 2

> LeekScript-veiledning

Denne veiledningen presenterer de forskjellige punktene for å sjekke om du vil migrere AI LeekScript 1 til 2. Se siden på LeekScript 2 for mer informasjon om selve versjonen.

Aktiverer LeekScript 2

For å aktivere LeekScript 1 på en gammel AI, klikker du bare på "LeekScript 1" til venstre på statuslinjen nederst i editoren. En meny åpnes og du kan klikke på "LeekScript 2" for å aktivere den. AI vil bli analysert med de nye reglene direkte.

Standard pass-by-referanse

I LeekScript 2, i motsetning til LeekScript 1, sendes alle verdier ved referanse, bortsett fra primitive verdier (tall, booleaner, strenger).

Så du kan fjerne alle @ fra koden din. (merk til dags dato at kompileringen med @ ikke fungerer).

Hvis du for eksempel har kodet rekursive algoritmer med arrays, vær forsiktig med å manuelt kopiere arrayene som sendes som parametere med clone()-funksjonen ved hvert kall.

Referanser

I LeekScript 1 er det umulig å henvise til et tall, en boolsk eller en tegnstreng. Det vil være nødvendig å kapsle inn disse verdiene i en matrise eller et objekt for å reprodusere denne oppførselen.

Bruke klasser og objekter

Reserverte søkeord

Søkeordene ny, klasse, utvider, statisk, offentlig, beskyttet, privat, implementer, grensesnitt, konstruktør, dette , super og instanceof er reservert for OOP og er derfor ikke lenger tilgjengelig for variabel- eller funksjonsnavn, så noen av dem må endres om nødvendig.

Kostnader i driften

På grunn av de nye reglene, spesielt pass-by-referanse, kan LeekScript 2 bruke langt færre operasjoner. Hvis du brukte betingelser for gjeldende antall operasjoner, for eksempel "if (getOperations() < 15000000)", kan AI-en oppføre seg annerledes.

arrayFilter

"arrayFilter"-funksjonen har dratt nytte av en korreksjon: den resulterende matrisen blir reindeksert og er derfor ikke lenger assosiativ med visse nullverdier. Vær forsiktig med å oppdatere algoritmene dine hvis du befinner deg i dette tilfellet.

Operatør ^=

^=-operatoren endrer betydning: den uttrykte power + assignment-operatoren i LeekScript 1 og uttrykker nå den binære OR-operatoren i LeekScript 2.