AviatorScript
Englische Dokumentation | Chinesische Dokumentation
AviatorScript
ist eine leistungsstarke, leichte Skriptsprache, die auf der JVM (einschließlich der Android-Plattform) gehostet wird.
Es ist kein Spiel, es ist eine Programmiersprache. Bitte senden Sie mir keine weiteren unerwünschten E-Mails.RTFM
Funktionseinführung
- Es unterstützt Grundtypen wie Zahlen, Zeichenfolgen, reguläre Ausdrücke, boolesche Werte und reguläre Ausdrücke und unterstützt vollständig alle Java-Operatoren und -Prioritäten.
- Funktionen sind Bürger erster Klasse und unterstützen Abschlüsse und funktionale Programmierung.
- Die integrierten bigint/decimal-Typen werden für große Ganzzahloperationen verwendet und die Überladung von Operatoren mit hoher Genauigkeit wird unterstützt, damit diese Typen gewöhnliche arithmetische Operatoren
+-*/
verwenden können, um an Operationen teilzunehmen. - Vollständige Unterstützung der Skriptsyntax, einschließlich mehrzeiliger Daten, bedingter Anweisungen, Schleifenanweisungen, lexikalischer Gültigkeitsbereich und Ausnahmebehandlung usw.
- Funktionale Programmierung in Kombination mit Sequenzabstraktion erleichtert die Handhabung jeder Sammlung.
- Leichtes Modulsystem.
- Mehrere Möglichkeiten zum bequemen Aufrufen von Java-Methoden, vollständige Unterstützung der Java-Skript-API (bequem zum Aufrufen von Skripten aus Java).
- Umfangreiche Anpassungsoptionen, verfügbar als sichere Sprachsandbox und als Sprache mit vollem Funktionsumfang.
- Dynamische Kompilierung und Ausführung, leichtgewichtig, hohe Leistung, durch direktes Kompilieren von Skripten in JVM-Bytecode im ASM-Modus kann der interpretierte Modus auf nicht standardmäßigen Java-Plattformen wie Android ausgeführt werden.
- Unterstützt die Serialisierung von Kompilierungsergebnissen, um die Cache-Beschleunigung usw. zu erleichtern. Unterstützt Ausführungszeitlimiteinstellungen, um zu verhindern, dass zerstörerischen Skripten nicht mehr genügend Ressourcen zur Verfügung stehen.
Zu den Nutzungsszenarien gehören:
- Regelbeurteilung und Regelmaschine
- Formelberechnung
- Dynamische Skriptsteuerung
- Sammlungsdaten ELT usw.
Es wird empfohlen, Version 5.2.6 und höher zu verwenden
Nachricht
- 5.4.3, Ein-Klick-Aktivierungsmethode der Sicherheitssandbox hinzufügen und Fehler beheben usw.
- 5.4.2, fügen Sie die Methode
getFunctionNames
hinzu, um die Funktionsliste abzurufen und das Auswertungszeitlimit usw. festzulegen. - 5.4.1, beheben Sie den Fehler, dass die rekursive Funktion nicht funktionieren kann, beheben Sie den Fehler, dass die Funktion nicht serialisiert werden kann usw.
Abhängigkeit
< dependency >
< groupId >com.googlecode.aviator</ groupId >
< artifactId >aviator</ artifactId >
< version >{version}</ version >
</ dependency >
Verfügbare Versionen können unter search.maven.org eingesehen werden.
Schnellstart
- Laden Sie die Aviator-Shell in ein Verzeichnis herunter (vorzugsweise innerhalb der
PATH
Umgebungsvariablen des Systems), z. B. ~/bin/aviator
:
$ wget https://raw.githubusercontent.com/killme2008/aviator/master/bin/aviator
$ chmod u+x aviator
- Durch Ausführen des Befehls
aviator
wird automatisch die neueste Dokumentversion aviator jar in das Installationsverzeichnis unter ~/.aviatorscript
heruntergeladen und ausgeführt:
$ aviator
Downloading AviatorScript now...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 153 100 153 0 0 111 0 0:00:01 0:00:01 --:--:-- 111
100 1373k 100 1373k 0 0 689k 0 0:00:01 0:00:01 --:--:-- 689k
Usage: java com.googlecode.aviator.Main [file] [args]
: java com.googlecode.aviator.Main -e [script]
: java com.googlecode.aviator.Main -v
- Speichern Sie das folgende Skript als Datei
hello.av
:
p ( "Hello, AviatorScript!" ) ;
let a = tuple ( 1 , 2 , 3 , 4 , 5 ) ;
p ( "sum of a is: " + reduce ( a , + , 0 ) ) ;
let date = new java . util . Date ( ) ;
p ( "The year is: " + getYear ( date ) ) ;
p ( "The month is: #{getMonth(date)}" ) ;
Ein Beispiel für einen komplexeren Rechner (der eine Folge arithmetischer Ausdrücke auswertet) finden Sie unter Rechner.av.
- Führen Sie das Skript aus:
$ aviator hello.av
Hello, AviatorScript !
sum of a is: 15
The year is: 120
The month is: 3
Weitere Informationen finden Sie im Benutzerhandbuch.
Links
- Veröffentlichungen: https://github.com/killme2008/aviator/releases
- Dokumente: https://www.yuque.com/boyan-avfmj/aviatorscript
- Änderungsprotokoll: https://www.yuque.com/boyan-avfmj/aviatorscript/bggwx2
- Javadoc: http://fnil.net/aviator/apidocs/
- Spring-Boot-Regel: https://github.com/mengxiangrui007/spring-boot-rule-jsr94
- Ideen-Plugin: https://github.com/yanchangyou/aviatorscript-ideaplugin