Android开发Android技术知识Android开发经验谈

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

2018-06-06  本文已影响33人  丶麦芽

概述

数据类型

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中又可以分为基本参数类型和闭包类型两种。

def a = 'Hello'
a = a.center(10,'World')
println a

//输出
WoHelloWor
def a = 'Hello'
println a[1]
println a[1..2]

//输出
e
el
def a = 'Hello'
def b = 'llo'
println a-b
//或者
println a.minus(b)

//输出
He
def a = 'Hello'
println a.reverse()

//输出
olleH
def a = 'hello'
println a.capitalize()

//输出
Hello
def a = '12345'
println a.isNumber()

//输出
true

逻辑控制

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
}
//相对于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
}
上一篇下一篇

猜你喜欢

热点阅读