背景介绍
C#最先引入LINQ特性,其强大的功能令我垂涎已久,并琢磨着为Groovy也添加类似特性,终于在Groovy 4中决定完成这一夙愿。GINQ是Groovy-Integrated Query的缩写,意在对集合的操作以类SQL的方式完成,将来或许会扩展至对数据库的支持。另外,结合Groovy的XML, JSON, YAML等文本解析特性,GINQ可天然地支持对这些文本内容进行查询。
虽然Groovy 3 Alpha版本就已经支持Java 8的Lambda、Method Reference以及Constructor Reference全部语法,但从bytecode层面来看,其本质上依然是Closure及Method Pointer,换言之,只是语法上的兼容,但性能上并没有提升。而Groovy的性能常为人诟病,所以Groovy 2引入了静态编译,其编译出来的bytecode跟Java的相近,所以其性能逼近Java。为了延续静态编译的性能优势,Groovy核心团队决定在Groovy 3 Beta版本中实现Lambda、Method Reference以及Constructor Reference的Native版本,其语法不变,但生成的bytecode与Java的相似,这便是”Native”的由来。
println "Hello, world!" |