AviadorScript
Documentación en inglés | Documentación en chino
AviatorScript
es un lenguaje de scripting ligero y de alto rendimiento alojado en JVM (incluida la plataforma Android).
No es un juego, es un lenguaje de programación. Por favor, absténgase de enviarme más correos electrónicos no solicitados.RTFM.
Introducción a la función
- Admite tipos básicos como números, cadenas, expresiones regulares, valores booleanos y expresiones regulares, y es totalmente compatible con todos los operadores y prioridades de Java.
- Las funciones son ciudadanas de primera, apoyando cierres y programación funcional.
- Los tipos bigint/decimal integrados se utilizan para operaciones de números enteros grandes y de alta precisión, y la sobrecarga de operadores de soporte permite que estos tipos utilicen operadores aritméticos ordinarios
+-*/
para participar en las operaciones. - Soporte completo de sintaxis de script, incluidos datos de varias líneas, declaraciones condicionales, declaraciones de bucle, alcance léxico y manejo de excepciones, etc.
- La programación funcional combinada con la abstracción de secuencia facilita el manejo de cualquier colección.
- Sistema de módulos ligeros.
- Múltiples formas de llamar cómodamente a métodos Java, totalmente compatibles con la API de scripts de Java (conveniente para llamar scripts desde Java).
- Amplias opciones de personalización, disponibles como entorno de pruebas de lenguaje seguro y como lenguaje con todas las funciones.
- Compilación y ejecución dinámicas, livianas y de alto rendimiento. Al compilar scripts directamente en código de bytes JVM en modo ASM, el modo interpretado se puede ejecutar en plataformas Java no estándar como Android.
- Admite la serialización de los resultados de la compilación para facilitar la aceleración de la caché, etc. Admite configuraciones de tiempo de espera de ejecución para evitar que los scripts destructivos se queden sin recursos.
Los escenarios de uso incluyen:
- Juicio de reglas y motor de reglas
- Cálculo de fórmulas
- Control de secuencias de comandos dinámicas
- Datos de recogida ELT, etc.
Se recomienda utilizar la versión 5.2.6 y superior.
Noticias
- 5.4.3, agregue el método de activación con un solo clic de la zona de pruebas de seguridad y corrija errores, etc.
- 5.4.2, agregue el método
getFunctionNames
para obtener la lista de funciones y establecer el tiempo de espera de evaluación, etc. - 5.4.1, corrige el error de que la función recursiva no puede funcionar, corrige el error de que la función no se puede serializar, etc.
Dependencia
< dependency >
< groupId >com.googlecode.aviator</ groupId >
< artifactId >aviator</ artifactId >
< version >{version}</ version >
</ dependency >
Las versiones disponibles se pueden ver en search.maven.org.
inicio rápido
- Descargue el shell aviator a un directorio (preferiblemente dentro de la variable de entorno
PATH
del sistema), como ~/bin/aviator
:
$ wget https://raw.githubusercontent.com/killme2008/aviator/master/bin/aviator
$ chmod u+x aviator
- Al ejecutar el comando
aviator
se descargará automáticamente la última versión del documento aviator jar al directorio de instalación en ~/.aviatorscript
y se ejecutará:
$ 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
- Guarde el siguiente script como archivo
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)}" ) ;
Para ver un ejemplo de una calculadora más compleja (que evalúa una serie de expresiones aritméticas), consulte calculadora.av.
- Ejecute el script:
$ aviator hello.av
Hello, AviatorScript !
sum of a is: 15
The year is: 120
The month is: 3
Lea la guía del usuario para obtener más detalles.
Campo de golf
- Lanzamientos: https://github.com/killme2008/aviator/releases
- Documentos: https://www.yuque.com/boyan-avfmj/aviatorscript
- Registro de cambios: https://www.yuque.com/boyan-avfmj/aviatorscript/bggwx2
- Javadoc: http://fnil.net/aviator/apidocs/
- Regla de arranque de primavera: https://github.com/mengxiangrui007/spring-boot-rule-jsr94
- Complemento de ideas: https://github.com/yanchangyou/aviatorscript-ideaplugin