天天看點

Wit 2.0.0-beta 釋出,Java 模闆引擎(原 Webit Script)

febit wit (原 webit script )是一個 java 平台下的模闆引擎,文法類似 javascript,支援自定義函數,全局變量,lambda 表達式,核心子產品輕巧(2.0.0-beta 版本核心 jar 為 327.7 kb),無第三方依賴,采用bsd開源協定。

出來炸個屍!釋出一下 2.0.0-beta !

啥?不是正式版?下個版本應該會是 2.0.1-beta 或 2.1.0-beta!沒有正式版!驚不驚喜!意不意外!

主要是讓你踩到坑也說得過去:

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

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

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

各種改,就連 api 也不放過

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

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

改了個包名

改了個項目名: wit,讀 <code>煟鋱</code>,嗯,兩個音節,交流起來比較友善

最低要求 java 1.7

增強了一下配置

不知道為啥在<code>ioc</code>上花了不少 commits

為了 sonar.oschina.net 上的一點兒虛榮,把内置的 asm 拆到了主包之外,parser 和 lexer 放在建構的時候生成

另外,還有一些:

一些見不得人的拼寫錯誤

lambda 支援空參數 <code>()-&gt;"hello lambda!"</code>, 單個參數時也可以括起來了 <code>(x)-&gt;x</code>

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

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

支援 <code>try-catch-finaly</code>

新增操作符<code>.~</code>來調用成員函數,例如: <code>map.~put(k, v)</code>, 支援多态(一定程度)

新增 javanativeutil 友善導入工具類中的方法, 支援多态(一定程度)

resource支援 <code>codefirst</code> 模式,好像很難解釋。。就是最開始直接寫邏輯而不需要 <code>&lt;%</code> 開頭,友善當腳本引擎使用的同學

變動的地方可不止上面這些!這個是後面兩個 <code>0</code> 的版本!想什麼都不改直接升上來是不可能的,是以,你真的不該考慮進來看 [滑稽臉]

最後,希望不會坑到你。。。