Apache Groovy 3.0.0 发布,JVM 动态脚本语言

xplanet
 xplanet
发布于 2020年02月12日
收藏 4

Apache Groovy 3.0.0 发布了。Groovy 是一种功能强大的可选类型和动态的语言,具有静态类型和静态编译功能,适用于 Java 平台,旨在通过简洁、熟悉且易于学习的语法提高开发人员的工作效率。 

更新内容如下:

Bug

  • [GROOVY-4976] - 错误的数组创建表达式中 AntlrParserPlugin 中的 NPE
  • [GROOVY-8966] - 当 List.getAt (range) 使用 Exclusive NumberRange 时,它将转换为 inclusive
  • [GROOVY-9204] - 编译器丢失超类字段的类型信息
  • [GROOVY-9368] - 有关 jointCompilationOptions 的重大更改
  • [GROOVY-9370] - 具有匿名类的类型推断回归,和对 SAM 的嵌套闭包类型控制
  • [GROOVY-9376] - Groovy 完全忽略 @GrabResolver 注释

New Feature

Improvement

更新说明

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Apache Groovy 3.0.0 发布,JVM 动态脚本语言
加载中

精彩评论

李嘉图
李嘉图
@jfinal groovy3发布的重点就是语法向java看齐,因为新写了一个用antlr的编译器Parrot,其含义相对比较谦卑,即“鹦鹉学舌”,学着如何说Groovy以及Java8,更加灵活,(注意措辞,人家没说,独创了parrot解析器)所以可以很好的支持原来的遗漏的java语法和没有支持完善的java语法,还有新加了一些表达式Elvis assignment operator,原来name = name ?: 'Hydrogen'新的atomicNumber ?= 2.所以,groovy作为一个成熟的语言,不但用了antlr,还现在正式发布了,不知道你说的"groovy想要作为了一个成熟的语言,就不该碰antlr"做何感想?
李嘉图
李嘉图
对了,groovy3现在支持数组的安全引用了,就是数据调用随便越界,不报错,只不过会返回给你一个null,这个还是比较爽的
叽叽不大不小
叽叽不大不小
终于等到了

最新评论(16

aruis
aruis
还记得当年java号称c++--
c#号称c++++ 么?
那么groovy可以当之无愧地称作java++
用过都说好,对java程序员来说,使用起来0负担
兼具动静两种形态,比kotlin适用的场景只多不少
Feng_Yu
Feng_Yu
捧Lombok臭脚的都应该看看Groovy
李嘉图
李嘉图
对了,groovy3现在支持数组的安全引用了,就是数据调用随便越界,不报错,只不过会返回给你一个null,这个还是比较爽的
小99
小99
教程不多啊
sofn
sofn
终于更新了
李嘉图
李嘉图
@jfinal groovy3发布的重点就是语法向java看齐,因为新写了一个用antlr的编译器Parrot,其含义相对比较谦卑,即“鹦鹉学舌”,学着如何说Groovy以及Java8,更加灵活,(注意措辞,人家没说,独创了parrot解析器)所以可以很好的支持原来的遗漏的java语法和没有支持完善的java语法,还有新加了一些表达式Elvis assignment operator,原来name = name ?: 'Hydrogen'新的atomicNumber ?= 2.所以,groovy作为一个成熟的语言,不但用了antlr,还现在正式发布了,不知道你说的"groovy想要作为了一个成熟的语言,就不该碰antlr"做何感想?
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,请问和java混编原理是什么?要各自编译吗?
李嘉图
李嘉图
我不太清楚你的意思,java编译java的文件,groovy编译groovy的文件,然后groovy可以安全的调用java,100%没问题,如果java调用groovy的话,可能会出来一些小问题,不过一般没问题.
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,能在方法中上一句写groovy下一句写java混编吗?
李嘉图
李嘉图
你理解错了,java文件里面写java,groovy文件里面写groovy,你说的任何jvm语言都不可能的.都是分开写的. 默认 .java 就是java文件,.groovy就是groovy文件,分开写的
Feng_Yu
Feng_Yu
因为Groovy编译器是可以编译Java代码的。而Groovy本身就是基于JVM的语言,所以它当然也可以编译成Java Class供Java调用,这也就是混编的基本原理。Groovy可以调用Java Class,反过来Java也可以调用Groovy Class。同理其他基于JVM的语言,如Kotlin也可以。具体的实现可以参考我们团队的Blog,有gradle配置实现: https://blog.dteam.top/posts/2017-02/vert-x%E5%85%A5%E5%9D%91%E9%A1%BB%E7%9F%A51.html#%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,能在方法中上一句写groovy下一句写java混编吗??
Feng_Yu
Feng_Yu
当然不可以,而且有必要吗?你的代码怎么写?扩展名定义什么?
李嘉图
李嘉图
groovy很好,语法特别方便
叽叽不大不小
叽叽不大不小
终于等到了
知足2020
路过
返回顶部
顶部