3.Groovy基础语法介绍

1、变量申明

  访问修饰符

    def:相当于局部变量

    ext:相当于全局变量

  申明变量:

    // groovy是一种规则非常松的语言,所有语句后面不用写分号,

    // 而且类型不用写也是可以的

    def int x = 1 

    def x = 1

2、字符串

  Groovy 提供了多种表示 String 字面量的方法,在 Groovy 中字符串可以用单引号('),双引号(“)或三引号(”“”)括起来。由双引号括起来的字符串可以对$符号进行转义,由三重引号括起来的字符串可以跨越多行。

        def xx = 'i have $x ¥'
        
        def y = 11
        def yy = "i have $x ¥"   //这里对$x转义
        
        def zz = """
        hi~
        i have something to do
        thank you
        """

3、范围

  范围是指定值序列的速记。范围由序列中的第一个和最后一个值表示,范围也可以是包含或排除,包含范围包括从第一个到最后一个的所有值,而独占范围包括除最后一个之外的所有值。这里有一些范例文字的例子。  

  • 1..10 - 包含范围的示例
  • 1 .. <10 - 独占范围的示例
  • 'a'..'x' - 范围也可以由字符组成
  • 10..1 - 范围也可以按降序排列
  • 'x'..'a' - 范围也可以由字符组成并按降序排列

  def test(){

    for(i in 1..5){

      println i

    }

  }

4、集合和映射

  1.4.1、集合,相当于 Java 中的 List 对象。

        //创建一个空的列表
        def list = []
        
        // 增加一个元素
        list.add("Gradle")
        
        // 左移添加,返回该列表
        list << "Groovy"
        
        // 增加多个元素
        list.addAll(["Gradle","Groovy"])
        
        // 删除一个元素
        list.remove("Groovy")

  1.4.2、映射,相当于 Java 中的 Map 对象。

        //创建空的映射
        def map = [:]
        
        //增加值
        map = ['name':'Bill','age':18]
        map.put('lastName','Yang')
        
        //遍历映射元素
        map.each { println "$it.key: $it.value" }
        map.eachWithIndex { it, i -> println "$i: $it"}
        
        //判断映射是否包含某键
        assert map.containsKey('name')

5、函数和闭包

  函数,也可以写成和 Java 中一样的方法,不过 groovy 可以写的更简单些。

      //形参数类型可以不写
    String doSomething(arg1, arg2){
      println "I will do something!!"
    }
    
    //不指定返回类弄,必须加def,最后一句不用写return,默认返回的是最后一句
    def doSomething(){
      println "I will do something too!!"
    }

  闭包,它英文是 closure,闭包是一种数据结构,属于一段代码,有两种常见的格式。

    //格式1: def xx = {param -> code}
    def closure = {//闭包是一段代码,所以用大括号
    String param, int param1 ->
    return println 'do something!!'
    }
    
    //如果闭包没有参数,默认会有一个类似于this的it参数
    //格式2: 没有参数 def xxx = {无参数,纯code}  这种情况不需要->符号
    def colsure = {"hello, $it"}
    等同于
    def colsure = {it -> "hello, $it"}

  闭包调用

    colsure("param1", "param2")
    
    //如果函数的最后一个参数是闭包,这个函数的小括号可以不写
    //常见到的写法如下
    task hello{ //这个理解成一个闭包,里面再嵌套了一个闭包
    doLast{
        println "hello"
    }
    }

6、类和对象

  Groovy 和其他任何面向对象语言一样,也存在类和对象的概念。在 Groovy 中,类是数据的集合和对该数据进行操作的一系列方法。类的数据和方法用于表示问题域中的一些现实世界对象,它和 java 中类的定义是一样的,换言之,Groovy 类就是 Java 类。

猜你喜欢

转载自www.cnblogs.com/Pibaosi/p/10469428.html
今日推荐