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. POJ 1981 Circle and Points (扫描线)

    [题目链接] http://poj.org/problem?id=1981 [题目大意] 给出平面上一些点,问一个半径为1的圆最多可以覆盖几个点 [题解] 我们对于每个点画半径为1的圆,那么在两圆交弧 ...

  2. 【分块】【链表】bzoj2738 矩阵乘法

    http://www.cnblogs.com/jianglangcaijin/p/3460012.html 首先将矩阵的数字排序.设置size,每次将size个数字插入.插入时,我们用h[i][j]记 ...

  3. 网络编程-tcp

    一.简单的demo (1)客户端 package com.songyan.tcp; import java.io.IOException; import java.io.InputStream; im ...

  4. MJExtension使用指导(转)

    MJExtension使用指导(转)  MJExtension能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --& ...

  5. 让XCode的Stack Trace信息可读

    程序报错信息如下:

  6. 对jsp中Url含中文字符的编码处理

    有一段url="/app/index/index.jsp?userName='测试'":在传入到jsp页面后. 用 <%  String userName=request.g ...

  7. 配置composer全量镜像与主要命令

    配置中国全量镜像 查看当前composer配置的镜像地址 composer config -g repo.packagist 显示如下,显示说明没有配置镜像地址 接下来我使用下面的命令进行查看配置的镜 ...

  8. org.hibernate.exception.ConstraintViolationException: could not delete:

    转自:http://fireinwind.iteye.com/blog/848515 异常描述: org.hibernate.exception.ConstraintViolationExceptio ...

  9. unity3d NGUI 本地化 多语言

    原地址:http://cl314413.blog.163.com/blog/static/1905079762014421115528670/ NGUI的本地化操作: Localization UIL ...

  10. mui 上拉加载更多

    看起来很简单的东西,实践过程中还是出现了很多麻烦,比如上拉时,状态条跑到了顶部,因为内容没有添加到容器中,再比如下拉的回调函数使用问题,this的传递. html实现部分: <div class ...