注重提升集合类处理操作的脚本语言 tinyscript

码农软件 · 软件分类 · 脚本编程语言 · 2019-03-04 09:44:37

软件介绍

许多的人使用Java来作为主要的编程语言,许多的时候感觉代码太过繁复,当然有Scala、Kotlin、Python等等语言号称可以解决此问题,但是毕竟生态圈的切换不是个小问题。同时语法结构和Java相去甚远也导致切换的成本毕竟高。

为此本人做了一下尝试,准备走一个中间路线,主题还是用Java语言,但是在需要的时候用TinyScript来解决一下问题,然后再回到Java主体执行,所以你完全可以把它当成一种EL语言来使用,当然解决复杂问题也比常规的EL语言更方便,毕竟TinyScript在集合运算能力方面有重点扩展的地方。

未来的方向,会重点放在算法方面,目前已经内嵌了动态规划的背包问题通用方法,后面会逐步扩充其他算法,让程序员们不再纠结于算法实现,而是集中注意力在问题上。

语言特性列表

  • 支持有序数据结构:数组和序列

  • 支持无序数据结构:set和map

  • 支持专有数据结构:树和序表

  • 序表支持关联、匹配、过滤、分组、排序、聚会等多种业务运算

  • 与java无缝集成,适用于jdk1.6及以上版本

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

  • 可以采用obj.field方式访问和操作对象属性,简化obj.getField()和obj.setField(value);

  • 支持数据结构间相互转换

  • 支持调用java非静态方法和静态方法

  • 支持bean对象,可以操作bean对象的属性和方法

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

  • 支持访问数据库,可以将表数据转换成序表结构

  • 支持访问Excel,可以将Sheet数据转换成序表结构

  • 支持访问文本,可以将行数据转换成序表结构

  • 支持不同数据源的序表操作,比如关联、匹配等

  • 支持object[key]扩展,比如访问list[1],map[key],简化用户操作

  • 支持object.field扩展,允许用户实现不同语法场景

  • 支持object.function(…)扩展,允许用户实现不同语法场景

  • 支持java的基本类型,内置不同精度的数值转换函数

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

  • 支持for、while循环指令

  • 支持基本表达式操作,符合java语法规范

  • 允许用户设置下标是否从0开始,方便用户访问元素

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

  • 允许用户定制常量,可以在脚本引擎构造后直接使用,无需声明,如PI、E等。

  • 内置聚合函数和三角函数等系统函数,允许用户自行编写函数类进行扩展。

  • 允许用户编写脚本类,简化业务逻辑。

  • 允许用户编写脚本文件,同时支持java方式和IDE插件调用,实现即时开发测试。

  • 支持动态更新脚本文件,无需重新编译部署

  • 允许用户通过快速运行器执行脚本,也允许用户通过带Spring的运行器执行需要Spring环境的脚本

  • 定义了基本操作符,但是允许用户配置不同的对象实现重载。

  • 提供集合的差并交异或运算

  • 允许对集合子元素进行批量操作符运算,返回新的集合,如list*2

  • 允许对集合子元素进行批量方法运算,返回新的集合,如list.getName()

  • 允许对集合子元素进行批量属性运算,返回新的集合,如list.age

  • 支持lambda表达式,部分函数允许使用lambda表达式简化逻辑

  • 增强lambda特性,允许lambda变量修改外部同名变量。

  • 支持排列的lambda遍历操作

  • 支持组合的lambda遍历操作

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

  • 支持单方法接口的lambda封装,如Runnable、Comparator

  • 支持各种脚本内嵌执行,比如dataSource[[ sql语言 ]] 进行带@占位符的sql动态执行,支持template[[ 模板语言 ]] 进行模板语言执行,也可以继承各种其他脚本

当然上面列的不一定全,后面也会有新的语言特性加入。

脚本运行

脚本语言的扩展名是ts和tinyscript,当然也可以起其他的扩展名。

提供了Eclipse和Idea的执行器插件,安装之后可以右键直接运行脚本文件。

先推出看看反响如何,如果反响比较好,准备开发ide,支持高亮、调试等等。

本文地址:https://codercto.com/soft/d/591.html

Single Page Web Applications

Single Page Web Applications

Michael Mikowski、Josh Powell / Manning Publications / 2013-9-30 / USD 44.99

Code for most web sites mostly runs on the server. When a user clicks on a link, the site reacts slowly because the browser sends information to the server and the server sends it back again before di......一起来看看 《Single Page Web Applications》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具