АвиаторСкрипт
Документация на английском языке | Документация на китайском языке
AviatorScript
— это высокопроизводительный и легкий язык сценариев, размещенный на JVM (включая платформу Android).
Это не игра, это язык программирования. Пожалуйста, воздержитесь от отправки мне нежелательных писем.RTFM.
Введение в функцию
- Он поддерживает основные типы, такие как числа, строки, регулярные выражения, логические значения и регулярные выражения, а также полностью поддерживает все операторы и приоритеты Java.
- Функции являются первоклассными гражданами, поддерживающими замыкания и функциональное программирование.
- Встроенные типы bigint/decimal используются для операций с большими целыми числами и высокой точности, а поддержка перегрузки операторов позволяет этим типам использовать обычные арифметические операторы
+-*/
для участия в операциях. - Полная поддержка синтаксиса сценариев, включая многострочные данные, условные операторы, операторы цикла, лексическую область видимости, обработку исключений и т. д.
- Функциональное программирование в сочетании с абстракцией последовательностей упрощает обработку любой коллекции.
- Легкая модульная система.
- Несколько способов удобного вызова методов Java, полная поддержка API сценариев Java (удобно вызывать сценарии из Java).
- Богатые возможности настройки, доступные как в безопасной языковой песочнице, так и в виде полнофункционального языка.
- Динамическая компиляция и выполнение, легкий вес, высокая производительность, за счет прямой компиляции сценариев в байт-код JVM в режиме ASM, интерпретируемый режим может работать на нестандартных платформах Java, таких как Android.
- Поддерживает сериализацию результатов компиляции для ускорения кэширования и т. д. Поддерживает настройки тайм-аута выполнения, чтобы избежать нехватки ресурсов разрушительных сценариев.
Сценарии использования включают в себя:
- Правило суждения и механизм правил
- Расчет по формуле
- Динамическое управление скриптами
- Сбор данных ELT и т. д.
Рекомендуется использовать версию 5.2.6 и выше.
Новости
- 5.4.3, добавьте метод активации изолированной программной среды безопасности в один клик, исправьте ошибки и т. д.
- 5.4.2, добавьте метод
getFunctionNames
, чтобы получить список функций и установить тайм-аут оценки и т. д. - 5.4.1, исправить ошибку, связанную с неработоспособностью рекурсивной функции, исправить ошибку, связанную с невозможностью сериализации функции и т. д.
Зависимость
< dependency >
< groupId >com.googlecode.aviator</ groupId >
< artifactId >aviator</ artifactId >
< version >{version}</ version >
</ dependency >
Доступные версии можно просмотреть на search.maven.org.
быстрый старт
- Загрузите оболочку aviator в каталог (желательно внутри системной переменной среды
PATH
), например ~/bin/aviator
:
$ wget https://raw.githubusercontent.com/killme2008/aviator/master/bin/aviator
$ chmod u+x aviator
- Выполнение команды
aviator
автоматически загрузит последнюю версию документа aviator jar в каталог установки ~/.aviatorscript
и запустит:
$ 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
- Сохраните следующий скрипт как файл
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)}" ) ;
Пример более сложного калькулятора (вычисляющего строку арифметических выражений) см. в файле Calculator.av.
- Выполните скрипт:
$ aviator hello.av
Hello, AviatorScript !
sum of a is: 15
The year is: 120
The month is: 3
Пожалуйста, прочитайте руководство пользователя для более подробной информации.
Ссылки
- Релизы: https://github.com/killme2008/aviator/releases.
- Документы: https://www.yuque.com/boyan-avfmj/aviatorscript.
- Журнал изменений: https://www.yuque.com/boyan-avfmj/aviatorscript/bggwx2.
- Javadoc: http://fnil.net/aviator/apidocs/
- Правило весенней загрузки: https://github.com/mengxiangrui007/spring-boot-rule-jsr94
- Плагин идеи: https://github.com/yanchangyou/aviatorscript-ideaplugin