美文网首页Android开发Android技术知识Android开发经验谈
Groovy快速学习(1) - 数据类型与逻辑控制

Groovy快速学习(1) - 数据类型与逻辑控制

作者: 丶麦芽 | 来源:发表于2018-06-06 22:26 被阅读33次

概述

  • 一种基于JVM的敏捷开发语言
  • 结合了Python、Ruby、Smalltalk的许多强大的特性
  • groovy可以与java完美结合,而且可以使用java所有的库
  • 语法上支持动态类型、闭包等新一代语言特性
  • 即可以面向对象编程、又可以面向过程编程(脚本)

数据类型

  • 可以使用java中的基本类型和对象类型,其中基本类型会被自动装包为对象类型(int -> Integer)
  • 也可以使用动态类型def 关键字声明
def a = 1
println a.class
def b = 1.3
println b.class
def c = "hello"
println c.class

//输出
class java.lang.Integer
class java.math.BigDecimal(大数据类型)
class java.lang.String

强类型和动态类型选择:如果该变量只是自己用,则推荐使用动态类型,如果该类型需要外部模块调用、传递,则推荐使用强类型。

字符串类型

Groovy中可以使用String类型,同时增加了GString类型,GString相对于String增加了许多API和操作符,并且两种类型可以相互传递相互调用。

定义

  • 使用单引号定义
//本质类型就是 java.lang.String,相加后得到的仍然是java.lang.String类型
def name = 'Hello Groovy!'
  • 使用三个单引号定义
//可以在里面换行,而单引号换行需要用+进行拼接;可以在里面使用单引号和双引号,而单引号中需要转义
def name = '''Hello Groovy!'''
  • 使用双引号定义
//使用双引号被称为可扩展字符串,扩展之前的真实类型是String,扩展后的真实的类型是GString,相加后得到的仍然是java.lang.String类型
def a = "Groovy"
def b = "Hello ${a}"
println a.class
println b
println b.class

//输出
class java.lang.String
Hello Groovy
class org.codehaus.groovy.runtime.GStringImpl

方法

Groovy中String的方法来源共三个地方,分别是java.lang.String、DefaultGroovyMethods、StringGroovyMethods三个地方,其中StringGroovyMethods中又可以分为基本参数类型和闭包类型两种。

  • center:扩充字符串的长度,并进行填充,center是从两侧填充,padLeft、padRight分别是从左右填充
def a = 'Hello'
a = a.center(10,'World')
println a

//输出
WoHelloWor
  • 获取指定位置上的字符
def a = 'Hello'
println a[1]
println a[1..2]

//输出
e
el
  • minus:滤除指定字符串(减法运算)
def a = 'Hello'
def b = 'llo'
println a-b
//或者
println a.minus(b)

//输出
He
  • reverse:字符串反转
def a = 'Hello'
println a.reverse()

//输出
olleH
  • capitalize:首字母大写
def a = 'hello'
println a.capitalize()

//输出
Hello
  • isNumber:判断字符串是否是数组类型
def a = '12345'
println a.isNumber()

//输出
true

逻辑控制

  • switch-case:相对于java语言可以传入更多的数据类型
def a = [1,2,3]
switch (a){
    case Integer: //类型
        println "Integer"
        break
    case [1,2,3,'a']: //数组
        println "Array"
        break
    case 1..4: //范围
        println "Range"
        break
}
  • for
//相对于java增加了对范围的循环
def a = 0
for(i in 1..9){
    a++
}

//对List进行循环
def a = 0
for(i in [1,2,3,4,5,6,7]){
    a++
}

//对Map进行循环
def key = 1
def value = ""
for(i in [1:"a",2:"b",3:"c"]){
    key+=i.key
    value+=i.value
}

相关文章

网友评论

    本文标题:Groovy快速学习(1) - 数据类型与逻辑控制

    本文链接:https://www.haomeiwen.com/subject/bcnisftx.html