Wit 2.0.0-beta 發布,Java 模板引擎(原 Webit Script)

2021-01-18 開源中國

Febit Wit (原 Webit Script )是一個 Java 平臺下的模板引擎,語法類似 JavaScript,支持自定義函數,全局變量,Lambda 表達式,核心模塊輕巧(2.0.0-beta 版本核心 jar 為 327.7 KB),無第三方依賴,採用BSD開源協議。

出來炸個屍!發布一下 2.0.0-beta !

<dependency>    <groupId>org.febit.wit</groupId>    <artifactId>wit-core</artifactId>    <version>2.0.0-beta</version></dependency>

啥?不是正式版?下個版本應該會是 2.0.1-beta 或 2.1.0-beta!沒有正式版!驚不驚喜!意不意外!
主要是讓你踩到坑也說得過去:

修復了自定義帶參數的全局函數可能會有的並發問題(1.5 版本因優化過度引入)

 `#` 不再用來代替`function`,使用 lambda 表達式同樣清爽: `(x,y,x)->{...}`

取消 `@` 操作符,實在是太醜了,下一步會考慮增強一下`.~`,支持 override 什麼的

各種改,就連 API 也不放過

這麼做, 其實是不想背一些大廠的同學的歷史包袱,始終維持一個健康的狀態,並希望小夥伴們能積極參與進來,哪怕過來補充個測試,代碼量並不大,結構上還說得過去

除了挖坑之外,還做了些無聊的事情:

另外,還有一些:

一些見不得人的拼寫錯誤

Lambda 支持空參數 `()->"Hello Lambda!"`, 單個參數時也可以括起來了 `(x)->x`

支持了批量賦值: `[b, a] = [a, b];` 這樣就可以交換 ab 的值; 而且還可以 `[arr[0],arr[1],arr[2],arr[3]] = 1..4;` 或者 `var [a,b]= ["a", "b"];` 或者 函數返回多個返回值 `[a, b] = (x -> [1,2])();`([攤手] 其實就是返回個數組)

小數運算精度上的小修改, 但是還不夠完善, 要求高的小夥伴還是通過自定義函數來滿足需求吧, 否則太重量級了

支持 `try-catch-finaly`

新增操作符`.~`來調用成員函數,例如: `map.~put(k, v)`, 支持多態(一定程度)

新增 JavaNativeUtil 方便導入工具類中的方法, 支持多態(一定程度)

Resource支持 `codeFirst` 模式,好像很難解釋。。就是最開始直接寫邏輯而不需要 `<%` 開頭,方便當腳本引擎使用的同學

變動的地方可不止上面這些!這個是後面兩個 `0` 的版本!想什麼都不改直接升上來是不可能的,所以,你真的不該考慮進來看 [滑稽臉]
最後,希望不會坑到你。。。

相關焦點