LeekScript 2

LeekScript 2

LeekScript 2 (aiemmin LeekScript 1.1) on toinen versio LeekScript:stä, Leek Warsin kielestä, joka julkaistiin 28. helmikuuta 2021. Sen tarkoituksena on puhdistaa kieli, tehdä korjauksia ja lisätä orientoitunutta ohjelmointiobjektia.

Esittely

Koska kielen toimintaan tehdään perusteellisia muutoksia, tämä on versio, jossa ei ole taaksepäin yhteensopivuutta ja jonka käyttäjä aktivoi manuaalisesti editorissa.

Versio 2 on askel kohti tulevaa versiota, joka julkistettiin vuonna 2016. Siksi versiossa 2 on monia suunniteltuja ominaisuuksia, jotka mahdollistavat kielen asteittaisen kehittymisen. Nämä ominaisuudet ovat erittäin hyödyllisiä monimutkaisen tekoälyn koodauksessa.

Erillinen siirtoa koskeva ohjesivu on saatavilla täältä: LeekScript 1 to 2 Migration.

Uutuudet

Olio-ohjelmointi

Lisätty olio-ohjelmointi: luokat ja objektit. Katso Luokat ja objektit-sivulta kaikki tämän lisäyksen dokumentaatio.

Avainsanat uusi, luokka, laajentuu, staattinen, julkinen, suojattu, yksityinen, toteutukset, käyttöliittymä, rakentaja, tämä , super ja instanceof on varattu OOP:lle, joten ne eivät ole enää käytettävissä muuttujien tai funktioiden nimissä.

Läpi viitteellä

Ei-primitiiviset arvot eli taulukot ja objektit välitetään oletuksena viittauksella. Primitiiviset arvot (luku, boolean, merkkijono) kopioidaan aina.

@-syntaksia ei enää käytetä, joten se on vanhentunut kaikkialla. LeekScript 2:ssa ei ole mahdollista luoda viittauksia primitiiviseen arvoon.

Viitteet taulukoissa

Kyky lisätä viitteitä taulukoihin (ja objekteihin), jolloin voidaan luoda monimutkaisia ja/tai rekursiivisia rakenteita kohtuullisin kustannuksin.

Esimerkkejä tietorakenteista, joita on vaikea saavuttaa kohdassa 1 ja erittäin helppoa kahdessa:

clone()-funktio

Lisätty funktio clone(value, [taso]) arvon kloonaamiseksi tarkasti:

Useita virheitä

Editorissa palasi useita semanttisia virheitä yhden sijasta (saatavilla myös LS 1:ssä).

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

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

Täysi puhelupino

Täysi puhelupino näkyy jokaisen virheen alla yhden rivin sijaan (saatavilla myös LS 1:ssä).

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

Puolipisteitä ei vaadita

Mutta ainahan sitä voi tietysti käyttää. (saatavilla myös LS 1:ssä)

RAM-muistin kokorajoitus poistettu

Matriisin kokorajoitus poistetaan, ja toiminnan kustannukset riittävät rajoittamaan niiden käyttöä.

Korjauksia

arrayFilter

Kiinteä arrayFilter: taulukko indeksoidaan oikein uudelleen jättämättä nolla-arvoja.

Ketju "\\\\"

Korjattu merkkijonon "\\" poistomerkki, joka näyttää oikein yhden \` kahden sijaan.

Globaalien julistus

Korjaa useiden tiedostojen yleiset ilmoitukset.

Operaattori ^=

Korjattu ^=-operaattorista, josta tuli binääri TAI tehon sijaan.

Sekoitustoiminto

Sekoitustoiminto ottaa huomioon taistelusiemeneen liitetyn satunnaislukugeneraattorin ja on siksi deterministinen samalle siemenelle. Se voi aiheuttaa eroja kahden samasta siemenestä luodun taistelun välillä, mikä vaikuttaa testeihin.