美文网首页
一、初识groovy

一、初识groovy

作者: 队长只有一个 | 来源:发表于2021-01-03 21:31 被阅读0次

    一、什么是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

    相关文章

      网友评论

          本文标题:一、初识groovy

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