天天看點

Aviator(表達式執行引擎)釋出1.0.1

對于類似”1+2”這樣由常量組成的表達式,會在編譯的時候直接計算出結果而非生成位元組碼運作時計算。非常量組成的表達式如”3.14rr+4/2” 也會在編譯的時候優化成”3.14rr+2”,也就是說能在編譯的時候計算的都計算出來,不能在編譯的時候确定的就生成位元組碼,運作時動态計算。預設不啟用編譯優化,除非設定:

[java]

aviatorevaluator.setoptimize(aviatorevaluator.eval);

[/java]

另外,加入了seq庫用于操作集合和數組,在aviator中,你可以用[ ]操作符直接通路數組和java.util.list,除此之外seq庫添加了一些對數組和集合的常用操作,示例如下:

map(seq,println) //列印集合

map(seq,-) //取集合中元素的相反數組成的集合

include(seq,element) //判斷element是否在集合中

sort(seq) //排序,傳回新的集合

reduce(seq,+,0) //求和

reduce(seq,-,1) //求積

filter(seq,seq.gt(3) //大于3的元素組成的新集合

filter(seq,seq.exists()) //不為nil元素組成的新集合

count(seq) //集合大小

aviator的一個介紹ppt

<a href="http://www.slideshare.net/killme2008/aviator" target="_blank">aviator——輕量級表達式執行引擎</a>

本文來源于"阿裡中間件團隊播客",原文時間"2010-09-07"