-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathaviator.txt
52 lines (46 loc) · 2.21 KB
/
aviator.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
int[] a = ...;
Map<String, Object> env = new HashMap<String, Object>();
env.put("a", a);
AviatorEvaluator.execute("1 + 2 + 3");
AviatorEvaluator.execute("a[1] + 100", env);
AviatorEvaluator.execute("'a[1]=' + a[1]", env);
//求数组长度
AviatorEvaluator.execute("count(a)", env);
//求数组总和
AviatorEvaluator.execute("reduce(a, +, 0)", env);
//检测数组每个元素都在 0 <= e < 10 之间。
AviatorEvaluator.execute("seq.every(a, seq.and(seq.ge(0), seq.lt(10)))", env);
//Lambda 求和
AviatorEvaluator.execute("reduce(a, lambda(x,y) -> x + y end, 0)", env);
Intro
Aviator is a lightweight,high performance expression evaluator for java. Aviator compiles expression to byte code and evaluate it on the fly.
Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。更详细的请阅读开发指南。
特性包括:
支持绝大多数运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式(?:)。
支持操作符优先级和括号强制设定优先级。
支持赋值。
逻辑运算符支持短路运算。
支持丰富类型,例如nil、整数和浮点数、字符串、正则表达式、日期、变量等,支持自动类型转换和提升。
支持 lambda 匿名函数和闭包。
内置一套强大的常用函数库。
可自定义函数,易于扩展,支持函数调用点参数列表捕获。
可重载运算符。
支持大数运算(BigInteger)和高精度运算(BigDecimal)。
支持多行表达式以及定制化求值器实例。
小巧并性能优秀,提供大量的定制选项。
更多详情,请访问主页
News
4.2.0, New features such as capturing function invocation arguments etc.
4.1.2, Bug fixes and more sequence functions.
Dependency
<dependency>
<groupId>com.googlecode.aviator</groupId>
<artifactId>aviator</artifactId>
<version>{version}</version>
</dependency>
Links
downloads: https://github.com/killme2008/aviator/releases
documents: https://github.com/killme2008/aviator/wiki
javadoc: http://fnil.net/aviator/apidocs/
author: dennis (killme2008@gmail.com)
spring boot: https://github.com/mengxiangrui007/spring-boot-rule-jsr94