Aviator-2.3.0用户指南
### Aviator-2.3.0用户指南 #### 版本变更 - **2013-05-18**: 完成0.6版本更新,新增了对大数和精度计算的支持,以适配Aviator 2.3.0版本。 - **2010-06-28**: 发布0.1版本。 - **2010-09-07**: 修改并完成0.2版本。 - **2011-07-13**: 完成0.3版本,适配Aviator 2.0。 - **2011-09-18**: 完成0.4版本,适配Aviator 2.1.1。 - **2011-12-27**: 完成0.5版本,适配Aviator 2.2.1。 #### 简介 Aviator是一款高性能且轻量级的Java实现的表达式求值引擎。尽管市面上已经存在多种用于动态求值的Java表达式引擎,但Aviator以其独特的设计目标——轻量级和高性能——脱颖而出。相较于Groovy或JRuby等更为复杂的脚本语言,Aviator的体积更小(加上所有依赖包仅450KB,若不计依赖包则仅有70KB),同时提供了一种介于复杂脚本语言与极简表达式引擎之间的平衡方案。 Aviator并非一种完整的编程语言,而是对编程语言的一部分进行了精简与优化。其核心优势在于能够直接将表达式编译为Java字节码并交由JVM执行,这使得Aviator在执行速度上具有显著的优势。 #### 特性 **支持的操作符**:Aviator支持丰富的运算符,包括但不限于算术运算符、关系运算符、逻辑运算符、位运算符、正则匹配运算符(`=~`)以及三元表达式(`?:`)。此外,还支持操作符优先级和括号强制优先级。 **函数调用与自定义函数**:用户不仅可以使用内置函数,还可以根据需求定义自己的函数。 **内置正则表达式支持**:Aviator内置了对正则表达式的支持,语法类似于Ruby或Perl中的匹配语法,并支持类Ruby的 `$digit` 指向匹配分组的功能。 **自动类型转换**:在进行操作时,Aviator会自动判断操作数的类型并做出相应的转换。如果转换失败,则会抛出异常。 **变量支持**:Aviator支持传递变量,并允许类似 `a.b.c` 的嵌套变量访问方式。 **函数式风格的seq库**:提供了针对集合和数组的操作。 **优秀的性能**:Aviator的设计充分考虑了执行效率,能够在保持轻量的同时提供高效的表达式求值能力。 #### 整体结构 Aviator的架构十分简洁,主要依赖包包括`commons-beanutils`和`commons-logging`。 #### Maven依赖 为了在项目中集成Aviator,可以通过Maven添加以下依赖: ```xml <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> <version>2.3.0</version> </dependency> ``` #### 使用手册 ##### 执行表达式 Aviator的核心功能是通过`com.googlecode.aviator.AviatorEvaluator`类执行表达式。例如,可以使用以下代码执行一个简单的加法表达式: ```java import com.googlecode.aviator.AviatorEvaluator; public class SimpleExample { public static void main(String[] args) { Long result = (Long) AviatorEvaluator.execute("1+2+3"); System.out.println(result); // 输出结果为6 } } ``` 需要注意的是,Aviator的数值类型仅支持`Long`和`Double`。因此,任何整数都会被转换为`Long`类型,任何浮点数都会被转换为`Double`类型。 ##### 使用变量 Aviator还支持使用变量。例如,可以让Aviator根据传入的名字输出问候语: ```java import com.googlecode.aviator.AviatorEvaluator; public class GreetingExample { public static void main(String[] args) { Map<String, Object> env = new HashMap<>(); env.put("name", "张三"); String greeting = (String) AviatorEvaluator.execute("hello + name", env); System.out.println(greeting); // 输出"hello张三" } } ``` 在此示例中,通过创建一个环境映射(`env`),并将变量`name`设置为“张三”。然后,在表达式中使用`+`连接字符串和变量名,最终得到问候语。 以上就是Aviator 2.3.0版本用户指南的主要内容。通过上述介绍,您可以了解到如何利用Aviator的强大功能,包括执行复杂的表达式、使用变量和自定义函数等,从而提高应用程序的灵活性和可维护性。
剩余23页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python爬虫的中国疫情数据分析与可视化毕设项目.zip
- 开源自己绘制的V851S核心板和底板
- 微信群成员重复对比.py
- Linux、File System、Linux基本常用命令
- miniconda的python2.7的环境安装包
- unity物体的旋转,缩放与拖拽
- Python开发的IP归属地批量查询工具
- Kotlin编程语言入门详解及核心知识点
- PeakVue山顶风景独好-毕业设计课程专属资源-JDK1.8
- 香蕉、包子、焦炭、水果沙拉、手、托盘、水瓶检测29-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar