精通Groovy之简要总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精通Groovy之简要总结相关的知识,希望对你有一定的参考价值。

简介

Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。Groovy 的一个好处是,它的语法与 Java 语言的语法很相似。虽然 Groovy 的语法源于 Smalltalk 和 Ruby 这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。详见:精通groovy

Groovy与java的对比

  1. java编写简单的helloworld
    然后分别进行编译和运行c:>javac HelloWorld.javac:>java HelloWorld
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}
  1. 用groovy编写简单的helloworld
    当您输入println 时,Groovy会知道指的是 System.out
    然后运行:c:>groovy MyFirstExample.groovy
    代码文件MyFirstExample.groovy:
println "Hello World!"
  1. 由此可见,我们并不需要编译groovy文件,因为Groovy 属于脚本语言。脚本语言的一个特点就是能够在运行时进行解释。(其实groovy也可以进行编译,使用groovyc编译产生标准的java字节码),可见:用 Groovy 编写的所有代码都能够通过标准 Java 运行时编译和运行。
    另附:groovy简单类文件,可见它不包含public,其中main也没有类型。
class HelloWorld {
 static void main(args) {
   println "Hello World"
 }
}

Groovy是没有类型的java代码

  1. Java中声明String变量:String value = “Hello World”;
    但是在groovy中:def value = "Hello World";,可见Groovy会根据对象的值来判断它的类型,如果输出println value,则控制台会输出Hello World,如果输出println value.class,则控制台会输出“class java.lang.String”
  2. 在groovy中“一切都是对象”,groovy会自动推断数据类型。

通过Groovy进行循环

  1. 定义一个独立的函数
    可以看到它很像javascript,但是他就是java代码,只不过用groovy的样式编写。repeat函数接受一个变量,调用函数会输出val五次。另外for循环省略了int。
  2. Groovy中的范围
    例如: “0..4” 表明包含整数 0、1、2、3、4。“0..<4” 表示 0、1、2、3。“a..e” 相当于 a、b、c、d、e。“a..<e” 包括小于 e 的所有值。
    例子:可以把for(i = 0; i < 5; i++)改成for(i in 0..<5)for(i in 1..5)for(i in 0..4)这样就与前边保持一致,共输出五次。
    如果对于下面的函数,调用repeat("foo"),则输出“foo”五次(默认情况下)
def repeat(val, repeat=5){
 for(i in 0..<repeat){
  println val
 }
}

Groovy集合

  1. 在 Java 中使用集合 — 导入 java.util 类,初始化集合,将项加入集合。这三个步骤都会增加不少代码。而 Groovy 可以直接在语言内使用集合。在 Groovy 中,不需要导入专门的类,也不需要初始化对象。集合是语言本身的本地成员。Groovy 也使集合(或者列表)的操作变得非常容易,为增加和删除项提供了直观的帮助。

Groovy映射

Groovy 中的任何映射机制在幕后都是 java.util.Map 的实例。

  1. Java语言的映射
    JAVA语言中的映射是名称-值对的集合,要用Java代码创建典型的映射,必须像下面这样操作:
Map<String, String>map = new HashMap<String, String>();
map.put("name", "Andy");
map.put("VPN-#","45");

一个HashMap实例容纳两个名称-值对,每一个都是String的实例。

  1. 通过Groovy进行映射。上面的映射可以写成def hash = [name:"Andy", "VPN-#":45],这里groovy映射中的键不必是String。这里的name看起来像一个变量,但其实groovy会将其变成String。

参考链接:https://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html 

以上是关于精通Groovy之简要总结的主要内容,如果未能解决你的问题,请参考以下文章

在 Groovy 中将字符串 XML 片段转换为文档节点

Android Studio应用基础,手把手教你从入门到精通(小白学习)总结1 之 基础介绍 + intent + 常用控件

Atom编辑器入门到精通 Atom使用进阶

Gradle 之语言基础 Groovy

Gradle入门之Groovy语法

Gradle入门之Groovy元编程