一、初识groovy

一、什么是groovy

groovy是一种能够运行在JVM的动态语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。

二、为什么需要学习groovy

1、强大的构建工具gradle是一种基于groovy的领域特定语言(DSL),所以,要学习gradle必须懂groovy语法。学习gradle可以提升工程构建的能力,简化工作流程,提升团队工作效率(DSL语言的核心思想:求专不求全,解决特定问题)。
2、groovy可以与java完美结合,而且可以使用java所有的库。懂java的人学习groovy很容易。

三、开发环境配置

官网下载groovy sdk,解压到合适的目录,在电脑中配置环境变量。sdk bin目录下有groovy 和 groovyc命令,作用相当于java 和 javac。开发工具可以使用:intellij idea。

四、groovy基本语法(与java的差异)

案例1:groovy中的变量类型最终都是对象类型。
package variable
int x = 10
println(x.class)
double y = 3.14
println(y.class)

输出结果:
class java.lang.Integer
class java.lang.Double

案例2:弱类型定义。
package variable
def x = 10
println(x.class)
def y = 3.1415
println(y.class)
def z = "mansn"
println(z.class)

输出结果:
class java.lang.Integer
class java.math.BigDecimal
class java.lang.String

阶段小结:强类型和弱类型的使用场景:变量自己用,可以用弱类型。变量需要外界使用,或者传参数,用强类型比较好。外界知道要传什么类型的变量过来。
案例3:变量类型可以运行过程改变。
package variable
def x = 10
println(x.class)
x = "mansn"
println(x.class)

输出结果:
class java.lang.Integer
class java.lang.String

案例4:groovy控制语句(switch的内容可以是任一类型的对象)。
package variable
def x = 4.24
switch(x){
    case "foo":
        println("found foo")
        break
    case [3,4,4,"list"]:
        println("found list")
        break
    case 3..8:
        println("found range")
        break
    case Integer:
        println("Integer")
        break
    case BigDecimal:
        println("big decimal")
        break;
    case 4.24:
        println("found 4.24")
        break
    default:
        println("no no")
        break
}

输出结果:(可以代替java中的instanceof)
big decimal

案例5:groovy循环语句
package variable
def sum = 0
for (i in 1..9){
   sum += i
}
println("sum = ${sum}")
sum = 0
for(i in [3,4,5,23]){
    sum += i
}
println("sum2 = ${sum}")
sum = 0
for (i in ["lili":1,"lucy:":2,"xiaoming":3]){
    sum += i.value
}
println("sum3 = ${sum}")

输出:sum = 45
sum2 = 35
sum3 = 6

五、String与GString

案例6:groovy中定义字符串可以用单引号、双引号、三引号。
package variable
def a = "a"
def b = "b"
def name = '''xx
     xx'''
println(name)

三个引号定义的字符串也是String类型的,但是是有格式的。(可以直接写json数据)。用双引号,单引号,三引号定义的字符串都为String类型(双引号正常定义的时候为String类型),而双引号可以定义可扩展字符串,单引号和三引号不可以。

package variable
def name = "mansn"
def sayHello = "Hello:${name}"
println(sayHello)
println(sayHello.class)

输出结果:
Hello:mansn
class org.codehaus.groovy.runtime.GStringImpl

案例7:花括号里可以是任意表达式,不仅仅是一个变量
package variable
def sum = "the sum of 2 and 3 equals ${2+3}"
def result = echo(sum)
println(result)
println(result.class)
String echo(String str){
    return str
}

输出结果:(GString自动转换成String了)
the sum of 2 and 3 equals 5
class java.lang.String

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容