Aviator是一個高性能、輕量級的java語言實現的表達式求值引擎,主要用于各種表達式的動態求值。

Aviator的設計目標是輕量級高性能 ,相比于Groovy、JRuby的笨重,Aviator非常小,加上依賴包也才450K,不算依賴包的話只有70K;當然,Aviator的語法是受限的,它不是一門完整的語言,而只是語言的一小部分集合。

其次,Aviator的實現思路與其他輕量級的求值器很不相同,其他求值器一般都是通過解釋的方式運行,而Aviator則是直接將表達式編譯成Java字節碼,交給JVM去執行。簡單來說,Aviator的定位是介于Groovy這樣的重量級腳本語言和IKExpression這樣的輕量級表達式引擎之間。

特性

Aviator的特性

  • 支持大部分運算操作符,包括算術操作符、關系運算符、邏輯操作符、正則匹配操作符(=~)、三元表達式?: ,并且支持操作符的優先級和括號強制優先級,具體請看后面的操作符列表。
  • </UL>

    • 支持函數調用和自定義函數
    • </UL>

      • 支持正則表達式匹配,類似Ruby、Perl的匹配語法,并且支持類Ruby的$digit指向匹配分組。
      • </UL>

        • 自動類型轉換,當執行操作的時候,會自動判斷操作數類型并做相應轉換,無法轉換即拋異常。
        • </UL>

          • 支持傳入變量,支持類似a.b.c的嵌套變量訪問。
          • </UL>

            • 性能優秀
            • </UL>

              Aviator的限制:

              • 沒有if else、do while等語句,沒有賦值語句,僅支持邏輯表達式、算術表達式、三元表達式和正則匹配。
              • </UL>

 本文由用戶 碼頭工人自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!