groovy学习(一)

目录


Gradle脚本使用的是Groovy语言,Groovy也是基于JVM的一种动态语言,基于Java并扩展了Java语言。Groovy会使写Java程序就要写脚本一样简单,写完就可以执行,所以看起来也像是一门脚本语言。Groovy内部会把代码编译为Java class文件然后启动虚拟机来执行。

创建一个HelloGroovy.groovy文件,里面输出 hello groovy!

println 'hello groovy!'

直接执行命令 groovy HelloGroovy.groovy 即可得到结果

String str1='hello'        
println 'hello groovy!'    // 单引号直接打印
println "$str1 groovy!"    // 双引号可以通过$打印引用

String str1='groovy'
println "${str1+str2}"     // 通过 ${} 打印表达式 
println '''
dd

'''                        // 三引号打印一段

Groovy中支持动态类型,即定义变量的时候可以不指定其类型。Groovy中,变量定义可以使用关键字def。注意,虽然def不是必须的,但是为了代码清晰,建议还是使用def关键字

def a = 1 //定义一个整形

def b = "字符串" //定义一个字符串

def double c = 1.0  //定义一个 double 类型,也可以指定变量类型

Groovy的基本类型和Java一样,对于集合来说List的具体实现是ArrayList,Map集合的具体实现是LinkedHashMap。

//定义一个List
def lists=['groovy','gradle','android']

//打印集合size
println lists.size

//打印集合中的数据
lists.each{
    it->println it
}

// 取元素
println lists[0]

// 添加元素,不需要担心数组越界
lists[100] = 'sad'
``` //定义一个Map def map=["key1":"hello","key2":"groovy","key3":true]

//打印集合size
println map.size()

//打印集合中的数据
map.forEach{
key,value->
println “ k e y : key : key:value”
}

// 取元素
println map[‘key1’]

// 添加元素
map[key4] = ‘ggsmida’

<h2 id=_link_7> 7. Groovy 类 </h2>

class Student {
int StudentID
String StudentName

static void main(String[] args) {
Student st = new Student()
st.StudentID = 1
st.StudentName = “Joe”
}
}


 - 表达式后面的分号可选
 - 每个类,构造方法和方法默认是public的
 - groovy编译器自动加setter/getter方法,不需要自己去书写
 - 类的属性可以直接使用点(.)来获取,底层都是用getter/setter方法
 
<h2 id=_link_8> 8. 方法 </h2>

def methodName() {
//Method code
}

//方法可以接收任意数量的参数。定义参数时,不必显式定义类型。可以添加修饰符,如public,private和protected
def methodName(parameter1, parameter2, parameter3) {
// Method code goes here
}

// 当然也可以显示指明它的数据类型和默认值
def methodName(parameter1, parameter2, int parameter3 = 7) {
// Method code goes here
}

// 方法返回值
//在Groovy中,方法体中的最后一个表达式的值会被作为返回值。这意味着return语句是可选的
int sum(int a, int b = 5) {
int c = a + b
return c
}
void printSum(int a, int b = 5) {
int c = a + b
print c
}

<h2 id=_link_9> 9. 闭包 </h2>

//定义一个闭包 ,记得要用{}包裹起来
def aClosure={
int a,int b-> //-> 箭头前面代表的是参数,后面是执行语句
a+b //返回值
}

println aClosure(1,2)

// 闭包作为参数
def static Display(clo){
println clo.call(1,2)
}
Display(aClosure)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值