李成笔记网

专注域名、站长SEO知识分享与实战技巧

跟大家聊聊Groovy与Java的不同 groovy jvm

现在的Android开发默认是基于Gradle进行打包构建的。Gradle的好处不言而喻,回头我会用另一篇文章说明。这篇文章主要说的是Gradle的编程语言Groovy。

Groovy是由JVM来解释执行的,所以它的大部分语法与Java类似,但是也有一些语法糖要优于Java。我们现在就来聊聊Groovy与Java之间有哪些不同。



变量

变量的类型:只有对象类型

变量的定义:不仅有Java的强类型,还有用def定义的弱类型


字符串

String、GString


闭包

概念:一个代码块。

定义:

def closer = { println ‘Hello groovy!’}

调用:

clouser.call()
clouser()

参数:

def closer = { String name, int age -> println ‘Hello ${name}, my age is ${age}’}
clouser(‘groovy!’, 4)
def clouser = { println “Hello ${it}”}    // 隐式参数
clouser(‘groovy!’)

返回值:

def clouser = { return “Hello ${it}”} 
def result = clouser(‘groovy!’)
println result

数据结构

数组:

def array = [1, 2, 3, 4, 5] as int[]
int[] array = [1, 2, 3, 4, 5]

列表:

def list = new ArrayList()   //java
def list = [1, 2, 3, 4, 5]   //groovy
list.sort()     // groovy排序
list.sort { a, b -> a == b ? 0 : Math.abs(a) < Math.abs(b) ? -1 : 1 }   // groovy自定义排序规则

映射:

def map = new HashMap()   // java
def colors = [red:’ff0000’, green: ‘00ff00’, blue:’0000ff’]
println colors[‘red’]    // 索引方式
println colors.red   // 索引方式
colors.yellow = ‘ffff00’    // 添加同类型的元素
colors.complex = [a:1, b:2]   // 添加不同类型的元素

范围:Java底层实现为List

def range = 1..10    //定义范围
println range[0]   //索引方式
println range contains(10)     // 判断是否包含某个值
println range.from   // 索引起始值
println range.to   // 索引终止值
range.each {       // 遍历
	println it
}

面向对象

默认所有类型都是public的,所以不用写public。除此之外,定义class和interface与Java一样。

def person = new Person(name:’Amy’, age : 26)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言