<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          tinyscript注重提升集合類處理操作的腳本語言

          聯(lián)合創(chuàng)作 · 2023-09-27 23:14

          許多的人使用Java來作為主要的編程語言,許多的時候感覺代碼太過繁復,當然有Scala、Kotlin、Python等等語言號稱可以解決此問題,但是畢竟生態(tài)圈的切換不是個小問題。同時語法結構和Java相去甚遠也導致切換的成本畢竟高。

          為此本人做了一下嘗試,準備走一個中間路線,主題還是用Java語言,但是在需要的時候用TinyScript來解決一下問題,然后再回到Java主體執(zhí)行,所以你完全可以把它當成一種EL語言來使用,當然解決復雜問題也比常規(guī)的EL語言更方便,畢竟TinyScript在集合運算能力方面有重點擴展的地方。

          未來的方向,會重點放在算法方面,目前已經內嵌了動態(tài)規(guī)劃的背包問題通用方法,后面會逐步擴充其他算法,讓程序員們不再糾結于算法實現(xiàn),而是集中注意力在問題上。

          語言特性列表

          • 支持有序數(shù)據(jù)結構:數(shù)組和序列

          • 支持無序數(shù)據(jù)結構:set和map

          • 支持專有數(shù)據(jù)結構:樹和序表

          • 序表支持關聯(lián)、匹配、過濾、分組、排序、聚會等多種業(yè)務運算

          • 與java無縫集成,適用于jdk1.6及以上版本

          • 支持new java對象,并可以使用Java所有類及對象

          • 可以采用obj.field方式訪問和操作對象屬性,簡化obj.getField()和obj.setField(value);

          • 支持數(shù)據(jù)結構間相互轉換

          • 支持調用java非靜態(tài)方法和靜態(tài)方法

          • 支持bean對象,可以操作bean對象的屬性和方法

          • 可以和Spring集成,方便加載bean配置信息

          • 支持訪問數(shù)據(jù)庫,可以將表數(shù)據(jù)轉換成序表結構

          • 支持訪問Excel,可以將Sheet數(shù)據(jù)轉換成序表結構

          • 支持訪問文本,可以將行數(shù)據(jù)轉換成序表結構

          • 支持不同數(shù)據(jù)源的序表操作,比如關聯(lián)、匹配等

          • 支持object[key]擴展,比如訪問list[1],map[key],簡化用戶操作

          • 支持object.field擴展,允許用戶實現(xiàn)不同語法場景

          • 支持object.function(&hellip;)擴展,允許用戶實現(xiàn)不同語法場景

          • 支持java的基本類型,內置不同精度的數(shù)值轉換函數(shù)

          • 支持if/elseif/else、switch指令

          • 支持for、while循環(huán)指令

          • 支持基本表達式操作,符合java語法規(guī)范

          • 允許用戶設置下標是否從0開始,方便用戶訪問元素

          • 支持[a .. b]方式生成指定范圍的序列

          • 允許用戶定制常量,可以在腳本引擎構造后直接使用,無需聲明,如PI、E等。

          • 內置聚合函數(shù)和三角函數(shù)等系統(tǒng)函數(shù),允許用戶自行編寫函數(shù)類進行擴展。

          • 允許用戶編寫腳本類,簡化業(yè)務邏輯。

          • 允許用戶編寫腳本文件,同時支持java方式和IDE插件調用,實現(xiàn)即時開發(fā)測試。

          • 支持動態(tài)更新腳本文件,無需重新編譯部署

          • 允許用戶通過快速運行器執(zhí)行腳本,也允許用戶通過帶Spring的運行器執(zhí)行需要Spring環(huán)境的腳本

          • 定義了基本操作符,但是允許用戶配置不同的對象實現(xiàn)重載。

          • 提供集合的差并交異或運算

          • 允許對集合子元素進行批量操作符運算,返回新的集合,如list*2

          • 允許對集合子元素進行批量方法運算,返回新的集合,如list.getName()

          • 允許對集合子元素進行批量屬性運算,返回新的集合,如list.age

          • 支持lambda表達式,部分函數(shù)允許使用lambda表達式簡化邏輯

          • 增強lambda特性,允許lambda變量修改外部同名變量。

          • 支持排列的lambda遍歷操作

          • 支持組合的lambda遍歷操作

          • 支持全排列的lambda遍歷操作

          • 支持單方法接口的lambda封裝,如Runnable、Comparator

          • 支持各種腳本內嵌執(zhí)行,比如dataSource[[ sql語言 ]] 進行帶@占位符的sql動態(tài)執(zhí)行,支持template[[ 模板語言 ]] 進行模板語言執(zhí)行,也可以繼承各種其他腳本

          當然上面列的不一定全,后面也會有新的語言特性加入。

          腳本運行

          腳本語言的擴展名是ts和tinyscript,當然也可以起其他的擴展名。

          提供了Eclipse和Idea的執(zhí)行器插件,安裝之后可以右鍵直接運行腳本文件。

          先推出看看反響如何,如果反響比較好,準備開發(fā)ide,支持高亮、調試等等。

          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美综合视频 | 99搞黄免费看 | 亚洲高清无码在线播放 | 日韩一区二区黄片视频在线看 | 豆花视频一区二区三区入口 |