AviateurScript
Documentation en anglais | Documentation en chinois
AviatorScript
est un langage de script léger et performant hébergé sur la JVM (y compris la plateforme Android).
Ce n'est pas un jeu, c'est un langage de programmation. Veuillez vous abstenir de m'envoyer d'autres e-mails non sollicités.RTFM.
Présentation des fonctionnalités
- Il prend en charge les types de base tels que les nombres, les chaînes, les expressions régulières, les valeurs booléennes et les expressions régulières, et prend entièrement en charge tous les opérateurs et priorités Java.
- Les fonctions sont des citoyens de première classe, soutenant les fermetures et la programmation fonctionnelle.
- Les types bigint/decimal intégrés sont utilisés pour les opérations sur de grands entiers et de haute précision, et la prise en charge de la surcharge d'opérateurs permet à ces types d'utiliser des opérateurs arithmétiques ordinaires
+-*/
pour participer aux opérations. - Prise en charge complète de la syntaxe de script, y compris les données multilignes, les instructions conditionnelles, les instructions de boucle, la portée lexicale et la gestion des exceptions, etc.
- La programmation fonctionnelle combinée à l'abstraction de séquence facilite la gestion de n'importe quelle collection.
- Système de modules légers.
- Plusieurs façons d'appeler facilement des méthodes Java, prenant entièrement en charge l'API de script Java (pratique pour appeler des scripts depuis Java).
- De riches options de personnalisation, disponibles sous forme de bac à sable linguistique sécurisé et de langage complet.
- Compilation et exécution dynamiques, légères, hautes performances, en compilant directement des scripts en bytecode JVM en mode ASM, le mode interprété peut s'exécuter sur des plateformes Java non standards comme Android.
- Prend en charge la sérialisation des résultats de compilation pour faciliter l'accélération du cache, etc. Prend en charge les paramètres de délai d'exécution pour éviter que les scripts destructeurs ne manquent de ressources.
Les scénarios d'utilisation incluent :
- Jugement de règles et moteur de règles
- Calcul de formule
- Contrôle de script dynamique
- Collecte de données ELT etc...
Il est recommandé d'utiliser la version 5.2.6 et supérieure
Nouvelles
- 5.4.3, ajoutez une méthode d'activation en un clic du bac à sable de sécurité et corrigez les bogues, etc.
- 5.4.2, ajoutez la méthode
getFunctionNames
pour obtenir la liste des fonctions et définir le délai d'expiration de l'évaluation, etc. - 5.4.1, corrigez le bug selon lequel la fonction récursive ne peut pas fonctionner, corrigez le bug selon lequel la fonction ne peut pas être sérialisée, etc.
Dépendance
< dependency >
< groupId >com.googlecode.aviator</ groupId >
< artifactId >aviator</ artifactId >
< version >{version}</ version >
</ dependency >
Les versions disponibles peuvent être consultées sur search.maven.org.
démarrage rapide
- Téléchargez le shell aviator dans un répertoire (de préférence dans la variable d'environnement
PATH
du système), tel que ~/bin/aviator
:
$ wget https://raw.githubusercontent.com/killme2008/aviator/master/bin/aviator
$ chmod u+x aviator
- L'exécution de la commande
aviator
téléchargera automatiquement la dernière version du document aviator jar dans le répertoire d'installation sous ~/.aviatorscript
et exécutera :
$ 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
- Enregistrez le script suivant sous le fichier
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)}" ) ;
Pour un exemple de calculatrice plus complexe (évaluant une chaîne d'expressions arithmétiques), voir calculator.av.
- Exécutez le script :
$ aviator hello.av
Hello, AviatorScript !
sum of a is: 15
The year is: 120
The month is: 3
Veuillez lire le guide de l'utilisateur pour plus de détails.
Links
- Sorties : https://github.com/killme2008/aviator/releases
- Documents : https://www.yuque.com/boyan-avfmj/aviatorscript
- Journal des modifications : https://www.yuque.com/boyan-avfmj/aviatorscript/bggwx2
- Javadoc : http://fnil.net/aviator/apidocs/
- Règle de démarrage printanier : https://github.com/mengxiangrui007/spring-boot-rule-jsr94
- Plugin d'idées : https://github.com/yanchangyou/aviatorscript-ideaplugin