关闭

Groovy入门(一)

标签: groovy
67人阅读 评论(0) 收藏 举报
当在脚本中第一次使用某个变量时,需要使用Groovy关键字def,其用途时声明变量。但是,在后续的赋值过程中再次使用这个变量时,就不需要再次使用这个关键字了。

def count =0
count = count+1

在赋值语句中age=25,使用Groovy的动态类型功能。age变量所引用值得类型是在其运行过程中,而不是在编译时确定的。

变量与对象之间的关联关系称为引用。变量引用了该对象所使用的内存部分。任何使用该变量的情况,将使用引用来获得与该对象相关的对象值。

在Groovy中==能比较字符型和数字型数据,字符型变量在比较过程中,实际上是通过a.equals(b)来实现,equals是String类的方法。

字符串字面值
Groovy为表示字符串提供了数种不同的方式。举例来说,在Groovy中,可以使用单引号(’)、双引号(”)或者三引号(””")来封装字符串。而且,在Groovy中使用三引号的字符串可以包含多行文本。

def age =25
‘my age is ${age}'                                //my age is ${age}
“my age is ${age}"                               //my age is 25
“””my age is ${age}””"                         //my age is 25
“my age is \${age}”                              //my age is ${age}


使用单引号封装的字符串的值就是所列出的字符序列本身。而另外两种形式的字符串的值有可能会进一步被解释。任何包含在解释型字符串中的${age}都将被求值,其结果是字符串的一部分。

字符串是顺序排列的字符集合,因此可以通过单个字符在字符串中的位置来获取该字符,这就是所说的索引位置。可以使用索引来指定单个字符或指定字符集合的位置。字符串索引从0开始,至于该字符串长度值减一。Groovy同样也支持负数索引,但是其顺序是从字符串的末尾开始往前计算。子字符串通常可以用索引段来表示。使用索引段可以提取字符串的子集。

下面是字符串对象greeting的索引和索引段范例“
def greeting = ‘hello world’
greeting[4]                    //o
greeting[-1]                   //d
greeting[1..2]                //el
greeting[1..<3]              //el
greeting[4..2]                //oll
greeting[4,1,6]              //oew

基本的字符串操作包括两个字符串的合并、字符串的复制,以及计算字符串的长度。

def greeting =‘Hello world’               
‘Hello’*3                                             //HelloHelloHello
‘Hello’+’world'                                   //Helloworld
greeting -‘o word'                              //Hell
greeting.size()                                    //11
greeting.length()                                //11
greeting.count(‘o’)                             //2 
greeting.contains(‘ell’)                       //true

举例来说,’Hello’+’World’表示”Hello”.puls(“world”)。”Hello”字符串对象调用了plus方法,其参数为字符串“word”。
groovy字符串是不能改变的,他们在任何地方都不可能改变。可以通过索引、索引字段以及合并其他字符串的方式创建一个新的String对象。因此,greeting-’o world’表达式演示了新String对象”Hell”的产生过程,但字符串对象greeting本身仍然没有变化。String类在java中是fanl类型,不可重写不可改变。


列表(list)、映射(map)和范围(range)
列表、映射和范围都是引用其他对象的集合。
列表和映射能够引用不同类型的对象,范围则表示整形值的集合。
列表和映射能够动态的增长。


列表是一种用来存储数据项集合的数据结构。在Groovy中,列表可以有序的保存所引用的对象。列表中对象所占用的位置也是有序的,并且能够通过一个整数类型索引来标识。列表是一系列包含在方括号中的对象集合,这些对象用逗号分隔。

[11,12,13,14]                  整数型列表
[‘ciao’,’joe']                     字符型列表
[1,2,[3,4],5]                     嵌套列表
[‘qiao’,1,4.11]                 含有不同类型的列表
[]                                     空列表

Groovy列表使用索引操作符[]来标识元素值。列表的索引从0开始,它指向列表的第一个元素。

def numbers=[12,13,14,15]
numbers[0]               //12
numbers[3]               //15
numbers[-1]             //15
numbers[-2]             //14

索引字段同样也可以用于列表
[11,12,13,14,15][3]          //14

“[]”操作符就是List类中定义的getAt方法。因此,当使用numbers[3]引用列表元素时,必须认识到,实际上是List对象numbers.getAt(3)


bumbers[0..2]               //返回列表[12,13,14]
bumbers[1..<3]             //返回列表[13,14]

使用列表的索引操作符同样也能够为列表赋新值,如果新值也是应该列表,同样赋值
numbers[1]=411          //返回列表[12,411,14,15]
numbers[2]=[2,4]         //返回列表[12,411,[2,4],15]

putAt方法提供了赋值语句的功能。通过<<运算符(即leftShift方法)可以把一个新元素追加到列表的最后。
numbers=[11,12,13,14]
numbers<<15             //返回列表[11,12,13,14,15]
同样,使用+操作符(即plus方法)可以连接两个列表
numbers+[16,17]        //返回列表[11,12,13,14,15,16,17]
—操作符(即minus方法)从列表中删除元素:
numbers-[13]              //返回列表[11,12,14,15,16,17]

列表方法
 

映射
是一种引用对象的无序集合,映射中的所有元素都可以通过关键字访问,他使用的关键字可以是任意类型的。当向一个映射插入值时,需要同时提供两个参数:关键字及其相应的值。在映射中,使用索引关键字即可检索出相应的值。
[‘Ken’:’Barclay’,’John’:’Savage’]                  //名/姓集合
[4:[2],6:[3,2],12:[6,4,3,2]]                              //整形关键字及约束列表
[:]                                                                 //空映射

def names = [‘Ken’:’Barclay’,’John’:’Savage']
def divisors = [4:[2],6:[3,2],12:[6,4,3,2]]
names[‘Ken’]                                               //Barclay
names.Ken                                                  //Barclay
names[‘Jessie’]                                           //null
divisors[6]                                                   //[3,2]


和列表一样引用也是getAt()方法,赋值也是putAt()

def names=[1:’joe’,’1’:’Joe']

names[1]                    //joe
names[‘1’]                  //Joe

上面映射范例的第一个项的关键字是Integer类型,值为1;而第二项的关键字是String类型,值为’1’。可以通过将第一个关键字作为整数,将第二个关键字作为字符串对象处理的方式达到此目的。但如果这不是我们的真正意图,就必须格外谨慎了。

映射方法



范围
范围是表达特定序列值的一种简略方法。他通过序列中第一个值和最后一个值表示,范围还具有包含和不包含关系。一个具有包含关系的范围,将包含从第一个值开始到最后一个值为止的所有值了一个具有不包含关系的范围,则包含除了最后一个值之外的所有值。

1900..1999
2000..<2100
‘A’..’D'
10..1
‘Z’..’X'

包含边界的范围通过“..”表示,而不包含边界的范围则在下边界和上边界之间使用“..<”。范围可以通过字符串或者整形值表示。如上所示,范围也可以通过生序或者降序表示。

def start = 10
def finish = 20
start..finish+1                                   //[10,11,12,13,14,15,16,17,18,19,20,21]





0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

groovy快速入门

一、 groovy简介和 环境搭建本机环境 : ubuntu 14.04 64bit JDK 1.7.67 IDE : intellij idea 13.11、groovy简介其官方介绍为, ...
  • qq_26847293
  • qq_26847293
  • 2016-02-20 15:49
  • 241

Groovy语言 Grails框架入门

掌握基本的 Grails 开发技术,并能够进一步独立学习 Grails 的高级功能。  Grails 是搭建在动态语言 Groovy 之上的一个开源 MVC Web 开发框架,Grails 的一个显...
  • zmx729618
  • zmx729618
  • 2016-08-09 16:55
  • 1494

Groovy脚本基础全攻略

【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Ja...
  • yanbober
  • yanbober
  • 2015-10-21 23:25
  • 50903

Groovy快速入门

Groovy简单入门
  • Iamzgx
  • Iamzgx
  • 2017-06-09 21:47
  • 1227

Gradle从入门到实战 - Groovy基础

Groovy是一门jvm语言,它最终是要编译成class文件然后在jvm上执行,所以Java语言的特性Groovy都支持,我们完全可以混写Java和Groovy。 既然如此,那Groovy的优势是什...
  • singwhatiwanna
  • singwhatiwanna
  • 2017-07-25 17:29
  • 15496

Groovy的入门

Groovy的简介Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有...
  • cckevincyh
  • cckevincyh
  • 2017-06-25 10:22
  • 163

Groovy语言规范中文版之面向对象

面向对象官方文档:Object orientation1.数据类型 Types1.1基本数据类型 Primitive typesGroovy支持Java语言规范中定义的所有的基本数据类型: 整数类型:...
  • dabaoonline
  • dabaoonline
  • 2016-01-13 00:11
  • 731

Groovy语言语法基础

Groovy 语言学习个人Groovy目前学习所用主要是用于编写gradle插件。 groovy语言是兼容Java语言的,我们可以使用写java的方式写Groovy,当然也可以使用Groovy本身的...
  • liweijie_chengxuyuan
  • liweijie_chengxuyuan
  • 2016-11-23 00:26
  • 921

Groovy模板引擎

本文参考自Template engines,一些代码直接引用了文档的内容。模板引擎介绍Groovy语言包含了一个模板引擎功能,可以生成各种类型的格式化文件,非常方便。模板引擎有下面几个,它们都实现了T...
  • u011054333
  • u011054333
  • 2017-03-07 21:06
  • 2478

Groovy字符串及其常用方法

文本文字以字符链的形式表示被称作字符串。脚本语言在字符串处理方面比主流的应用程序开发语言做的更好。Groovy就提供了许多附加的特性。在Groovy中有两种风格的字符串:String(java.lan...
  • dora_310
  • dora_310
  • 2016-10-22 23:27
  • 12898
    个人资料
    • 访问:775次
    • 积分:44
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章存档