atitit.groovy 语法特性

1. Groovy 1.6概览1

1.1. 多路赋值2

2. 新发布的Groovy2.0为这门语言带来了关键的静态特性:静态类型检查和静态编译;2

3. 参考3

增强的ast @log  @field

3. 动态类型def6

4. 循环变量不需要def6

5. String 和Gstring6

6. 范围6

7. 默认参数值7

8. 集合简化操作7

9. 闭包(Closure)8

10. Groovy类map构造函数9

11. (5)    不需要return9

12. (6)    不需要()号9

13. ?运算符 避免出现空指针异常,10

14. 动态添加方法metaClass10

15. 正则表达式常量在Java中没有,在Groovy中表示为 /pattern/11

16. 不强制捕获检查异常(checked exception)外 (这跟C#很像,如果我没记错的话 :)         并且在方法声明时,也可以不写throws语句。11

17. .Groovy会自动导入java.lang.*, java.util.*, java.net.*, java.io.*, java.math.BigInteger, java.math.BigDecimal,   groovy.lang.*, groovy.util.*,而Java则只自动导入java.lang.*11

1. Groovy 1.6概览

Groovy 1.6的主要亮点列举如下:

· 编译时与运行时性能的巨大提升

· 多路赋值

· if/else与try/catch块中可选的返回语句

· Java 5注解定义

· AST转换和众多转换注解,比如@Singleton、@Lazy、@Immutable、@Delegate及助手

· Grape模块和依赖系统及其@Grab转换

· Swing builder的若干改进、这要归功于Swing / Griffon团队,同时还有Swing console的几处改进

· 集成了JMX builder

· 各种元编程的改进,像是EMC DSL,针对POJO的基于实例的元类(per-instance metaclasses),以及运行时的掺元(mixin)

· 内置JSR-223脚本引擎

· 开箱即用的OSGi支持

1.1. 多路赋值

Groovy 1.6只增加了一种语法来同时定义多个变量并为其赋值:

def (a, b) = [1, 2]

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2. 新发布的Groovy2.0为这门语言带来了关键的静态特性:静态类型检查和静态编译;

采用了JDK 7相关的改进:Project Coin语法增强和新支持的“invoke dynamic” JVM指令;

同时,提高了模块化。我们将在这篇文章中了解这些新特性的详情。

3. 参考

Groovy 1_6的新特性.htm

Groovy 1.8 新特性  增强的 AST - 流水不争先 - 博客频道 - CSDN.NET.htm

Groovy 2_0新特性.htm

atitit.groovy 语法特性的更多相关文章

  1. Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0   attilax总结

    Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0   attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...

  2. Atitit.jdk java8的语法特性详解 attilax 总结

    Atitit.jdk java8的语法特性详解 attilax 总结 1.1. 类型推断这个特别有趣的.鲜为人知的特性1 2. Lambda1 2.1. 内部迭代意味着改由Java类库来进行迭代,而不 ...

  3. atitit groovy 总结java 提升效率

    atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3.  添加 Groovy 类 2 4.  编译运行groovy类 ...

  4. Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014

    Atitit.数据库新特性 mssql sql server 2008 SQL2012 SQL2014 1. Sql2012 新特性 1 1.1. 增加了Sequence对象. 1 1.2. 新的分页 ...

  5. Atitit eclipse新特性总结3.1---4.4  4.5

    Atititeclipse新特性总结3.1---4.4  4.5 1. Eclipse 4.4 Luna正式发布了.1 1.1. 新版本的Eclipse默认对Java8提供支持1 1.2. 内存分析器 ...

  6. Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27

    Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27 1. 修改历史2 2. 适用语言::几乎所有编程语言.语言提升的三个渠道::语法,类库,框架,ide2 2.1. 单根继承  ...

  7. Gradle系列之一 Groovy语法精讲

    Gradle技术之一 Groovy语法精讲 gradle脚本是基于groovy语言开发的,想要学好gradle必须先要对groovy有一个基本的认识 1. Groovy特点 groovy是一种DSL语 ...

  8. Groovy语法基础

    Groovy 简介 Groovy 是一种基于 JVM 的动态语言,他的语法和 Java 相似,最终也是要编译 .class 在JVM上运行. Groovy 完全兼容 Java 并且在此基础上添加了很多 ...

  9. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

随机推荐

  1. ubuntu 16.04.1 LTS zabbix-agent安装

    $ wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xeni ...

  2. 【动态规划】【零一背包】CODEVS 1014 装箱问题 2001年NOIP全国联赛普及组

    #include<cstdio> #include<algorithm> using namespace std; ],f[]; int main() { scanf(&quo ...

  3. 开启关闭Centos的自动更新(转)

    开启关闭Centos的自动更新 关闭Centos的自动更新,操作记录如下: [root@jwbdb alpha]# chkconfig –list yum-updatesd yum-updatesd  ...

  4. Problem B: 零起点学算法17——2个数比较大小

    #include<stdio.h> int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) if( ...

  5. pythonGUI菜单栏和弹出菜单

    菜单栏代码: from tkinter import * root = Tk() menubar = Menu(root) def callback(): pass filemenu = Menu(m ...

  6. iOS中的场景转换机制的浅显分析

    目前Apple推荐的场景转换的方法有以下几个: 一般的跳转方法: presentViewController Discussion In a horizontally compact environm ...

  7. RowState 介绍

    RowState 介绍 从不同位置载入 DataRow 后 RowState 的状态修改, 更改, 删除后的 DataRow.RowState 转化使用 AcceptChanges, RejectCh ...

  8. delphi执行cmd命令和bat文件

    转载地址:http://blog.csdn.net/hutao1101175783/article/details/42807063 cmd:='echo d | Xcopy '+BasePath+' ...

  9. django+celery+redis实现运行定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  10. jquery修改ajax的header的字段origin方法,均被浏览器拒绝

    一.方法一 $.ajax({ headers: { Origin: "http://targetIP" } }); 二.方法二 $.ajax({ beforeSend: funct ...