精通Groovy之简要总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精通Groovy之简要总结相关的知识,希望对你有一定的参考价值。
简介
Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。Groovy 的一个好处是,它的语法与 Java 语言的语法很相似。虽然 Groovy 的语法源于 Smalltalk 和 Ruby 这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。详见:精通groovy
Groovy与java的对比
- java编写简单的helloworld
然后分别进行编译和运行c:>javac HelloWorld.java
及c:>java HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
- 用groovy编写简单的helloworld
当您输入println 时,Groovy会知道指的是 System.out
然后运行:c:>groovy MyFirstExample.groovy
代码文件MyFirstExample.groovy:
println "Hello World!"
- 由此可见,我们并不需要编译groovy文件,因为Groovy 属于脚本语言。脚本语言的一个特点就是能够在运行时进行解释。(其实groovy也可以进行编译,使用groovyc编译产生标准的java字节码),可见:用 Groovy 编写的所有代码都能够通过标准 Java 运行时编译和运行。
另附:groovy简单类文件,可见它不包含public,其中main也没有类型。
class HelloWorld {
static void main(args) {
println "Hello World"
}
}
Groovy是没有类型的java代码
- Java中声明String变量:
String value = “Hello World”;
但是在groovy中:def value = "Hello World";
,可见Groovy会根据对象的值来判断它的类型,如果输出println value
,则控制台会输出Hello World,如果输出println value.class
,则控制台会输出“class java.lang.String” - 在groovy中“一切都是对象”,groovy会自动推断数据类型。
通过Groovy进行循环
- 定义一个独立的函数
可以看到它很像javascript,但是他就是java代码,只不过用groovy的样式编写。repeat函数接受一个变量,调用函数会输出val五次。另外for循环省略了int。 - 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集合
- 在 Java 中使用集合 — 导入 java.util 类,初始化集合,将项加入集合。这三个步骤都会增加不少代码。而 Groovy 可以直接在语言内使用集合。在 Groovy 中,不需要导入专门的类,也不需要初始化对象。集合是语言本身的本地成员。Groovy 也使集合(或者列表)的操作变得非常容易,为增加和删除项提供了直观的帮助。
Groovy映射
Groovy 中的任何映射机制在幕后都是 java.util.Map 的实例。
- Java语言的映射
JAVA语言中的映射是名称-值对的集合,要用Java代码创建典型的映射,必须像下面这样操作:
Map<String, String>map = new HashMap<String, String>();
map.put("name", "Andy");
map.put("VPN-#","45");
一个HashMap实例容纳两个名称-值对,每一个都是String的实例。
- 通过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之简要总结的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio应用基础,手把手教你从入门到精通(小白学习)总结1 之 基础介绍 + intent + 常用控件