Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

KretScript

FROZEN_SUPPORTED_SUBSETkrets-2.0

KretS (oficjalnie KretScript, generacja 2.0) to statycznie typowany język logiki pluginów. Kompiluje się do bytecode KBC 2 i działa w maszynie z weryfikatorem w osobnym procesie pluginu. Operacje hosta (dziennik, KretDB, konfiguracja, AI, mosty) są dostępne tylko przez brokera i tylko przy uprawnieniu z KretL.

zamrożony dokładnie opisany zakres; reszta poza kontraktem 1.0

Stan języka nie nadaje uprawnień KCS ani prawa działania w Core Production.

Format / wersja
2.0
Kontrakt
krets-2.0
Rozszerzenia
.krs

Przejdź do trzech poziomów nauki

Dokumentacja i referencja

Przykłady tej technologii

KretS · ADVANCED

Zadania, strumienie i zdarzenia [2.0]

`async fn` i `await` (zadania współbieżne, nie równoległe), `Stream<Int>` z buforem i `for await`, `timeout` obsłużony w `try`/`catch`, deklaracja `event`, handler `on`, `emit` oraz `subscribe … with`.

RUNNABLE_LOCAL
KretS · ADVANCED

Klasy, interfejsy, dziedziczenie, generyki [2.0]

Interfejs, klasa z konstruktorem `init`, dziedziczenie z `super(...)` i `override`, klasa generyczna `Pair<A, B>`, funkcja generyczna z ograniczeniem `T: Shape`, polimorfizm przez interfejs. Kod bazuje na oficjalnym przykładzie SDK `ObjectOriented`.

RUNNABLE_LOCAL
KretS · ADVANCED

Testy `kret test` i diagnostyka (EXPERIMENTAL)

Moduły testowe w `Tests/` (funkcje `test…` bez parametrów i bez wyniku). Porażka = `throw`, pominięcie = `throw "SKIP: …"`. `kret test --list` tylko kompiluje i wypisuje plan, `kret test --json` wykonuje każdy moduł w świeżym, izolowanym procesie pluginu. `kret test` ma status EXPERIMENTAL (`kret-test/1`).

RUNNABLE_LOCAL
KretS · BASIC

Najczęstsze błędy typów

KretS nie ma konwersji niejawnych. `1 + 2.0` daje `KCS-KRS-0320`, `let x = null` bez typu daje `KCS-KRS-0307`. Folder `fixed/` pokazuje poprawki: jawne `toFloat(1)` i typ `String?`.

VALIDATION_ONLY
KretS · BASIC

Pierwszy program KretS

Moduł `Main`, funkcja `Start` zwracająca `String`, zmienna `let`, łączenie tekstów i wpis w dzienniku (`log.info`, wymaga `logs.own.write`).

RUNNABLE_LOCAL
KretS · INTERMEDIATE

Przetwarzanie danych: rekordy, listy, mapy, błędy

Parsowanie wierszy tekstu do rekordów (`record`), filtrowanie i sumowanie w pętli `for`, grupowanie w `Map<String, Int>`, typy nullable (`parseInt` → `Int64?`, `Map.get` → `V?`) z `orElse`, obsługa błędu `try`/`catch` i `throw`, stała `const`.

RUNNABLE_LOCAL
KretS · INTERMEDIATE

Moduły i łączenie funkcji

Jeden plik = jeden moduł. `Main` wywołuje funkcje modułów `Stats` i `Text` przez `Moduł.funkcja`. Rekordy są wspólne dla całego pluginu.

RUNNABLE_LOCAL

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności