天天看點

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

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

aviatorevaluator.setoptimize(aviatorevaluator.eval);

    另外,加入了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">aviator——輕量級表達式執行引擎</a>

    aviator 1.0.1也已經放到maven的中心倉庫,你可以直接引用:

        &lt;dependency&gt;

            &lt;groupid&gt;com.googlecode.aviator&lt;/groupid&gt;

            &lt;artifactid&gt;aviator&lt;/artifactid&gt;

            &lt;version&gt;1.0.1&lt;/version&gt;

        &lt;/dependency&gt;

    文章轉自莊周夢蝶  ,原文釋出時間2010-09-07 14