少妇被躁爽到高潮无码人狍大战,欧洲亚洲国产精华液,色狠狠色噜噜av天堂一区,人人妻,一区二区三区,色偷偷wwww88888

首頁 - 關于研博 - 技術筆記 - AviatorScript學習文檔
AviatorScript學習文檔
2024.10.22

  1. AviatorScript介紹

  AviatorScript是一個高性能的規(guī)則引擎,并且提供了豐富的API來操作Java對象。

  1.1 AviatorScript特點介紹

  AviatorScript具有以下特點:

  •   高性能,AviatorScript可以將表達式直接翻譯成為Java字節(jié)碼執(zhí)行;
  •   輕量級,整個Aviator包只有不到500K的大小,相較于傳統(tǒng)的規(guī)則引擎比如Drools、JRules來說體積更小;
  •   支持數(shù)字(包括整型、浮點型、大整數(shù)都支持高精度運算)、字符串、布爾值等豐富的基本類型,可以使用所有的Java運算符進行運算;
  •   支持正則表達式及運算符重載。

 

  2. AviatorScript使用

  2.1 引入依賴

  

 

  2.2 編寫代碼

  例子1

  

  通過以上代碼就完成了第一個AviatorScript腳本的運行。

  例子2

  接下來我們通過一段代碼實現(xiàn)一個條件表達式的計算。

  

  例子3

  下面我們通過定義一個稍微復雜的條件表達式來實現(xiàn)自動的計算從而得到比較結果

  

  通過以上三個例子可以看到Aviator可以通過調(diào)用compile()方法傳入對應的腳本文本,得到一個Expression對象,最終會由這個對象去調(diào)用execute()方法去進行運算得到結果,這個方法有個好處就是可以接收一個Map對象來給腳本中的變量賦值,可以實現(xiàn)根據(jù)用戶填報的條件給變量進行不同賦值獲取動態(tài)的運算結果,這樣就極大給我們省了很多的代碼編寫,條件的比較過程我們可以交給Aviator來幫我們實現(xiàn)。同樣的,我們也可以通過構建不同的Map對象,復用Expression對象,對一個表達式進行反復求值。下面在例子3的基礎上構建一個新的Map對象,對同一個表達式進行多次求值,可以看到根據(jù)不同的賦值,得到不同的運算結果。

  例子4

  

  在實際的開發(fā)場景中我們可能往往不會清楚的知道條件表達式中會有多少未初始化的變量,這個時候我們可以通過調(diào)用Expression的getVariableNames()方法。還是通過上面這個例子的條件表達式進行變量的打印來舉例說明,

  例子5

  

  AviatorScript也支持對邏輯運算符&&和||起別名,在設置別名后原來的運算符也還可以繼續(xù)使用。

  例子6

  

  以上就是AviatorScript的基本使用,除此之外AviatorScript還支持很多其他的功能,比如:

  •   對運算符進行重載:在某些場景中不支持除法運算,可以通過對運算符的重載,屏蔽/運算;
  •   異常捕獲,在腳本內(nèi)就可以在發(fā)生異常之后做出處理;
  •   函數(shù),在例子1中其實就已經(jīng)使用過了print()函數(shù)來打印字符串,也支持自定義函數(shù)等等。

 

  3.應用場景

  AviatorScript通過靈活的表達式配置可以應用在規(guī)則判斷、公式計算、動態(tài)腳本控制以及數(shù)據(jù)ETL場合中,也能夠應用在一些邊緣計算的場景,根據(jù)提前定義好的條件規(guī)則對數(shù)據(jù)進行提前一步的處理。AviatorScript可以滿足我們絕大多數(shù)場景下的使用需求,它非常的輕量,支持靈活的擴展,應用在項目中可以提高業(yè)務的靈活性,降低開發(fā)的工作量。

獲取相關資料
下載地址將會發(fā)送至您填寫的郵箱
相關新聞
IEC104協(xié)議解析
2025-03-07
電動汽車GB/T32960-2016協(xié)議介紹開發(fā)
2025-02-21
HJ212環(huán)境監(jiān)測數(shù)據(jù)傳輸協(xié)議
2025-02-14
  • 在線客服
  • 電話咨詢
  • 微信
  • 短視頻