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 也不放过
这么做, 其实是不想背一些大厂的同学的历史包袱,始终维持一个健康的状态,并希望小伙伴们能积极参与进来,哪怕过来补充个测试,代码量并不大,结构上还说得过去
除了挖坑之外,还做了些无聊的事情:
- 改了个包名
- 改了个项目名: wit,读
煟鋱
,嗯,两个音节,交流起来比较方便 - 最低要求 java 1.7
- 增强了一下配置
- 不知道为啥在
IoC
上花了不少 commits - 为了 sonar.oschina.net 上的一点儿虚荣,把内置的 asm 拆到了主包之外,Parser 和 Lexer 放在构建的时候生成
另外,还有一些:
- 一些见不得人的拼写错误
- 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
的版本!想什么都不改直接升上来是不可能的,所以,你真的不该考虑进来看 [滑稽脸]
最后,希望不会坑到你。。。
文章转载自 开源中国社区 [http://www.oschina.net]