groovy 基础语法
- 变量为对象类型(包括基本类型)
- def 定义弱类型(编译器自动判断类型)
- String 定义 有 ’ ‘, " ", ‘’’ ‘’’ 三种,‘’‘ ’‘’ 为文本块可以直接输入转义符,而无需转义
- GString 可以在字符串通过 ${ groovy 代码 } 来插入代码,echo(GString) == String GString -> String 转换
- switch 语句 case 子句可以放任意类型数据, 例如 Integer, List, range, map, String 等
- for 对 list ,map, range 支持
- 闭包是代码块,默认 it 参数, 可传入自定义参数,例如 def hello = { String name -> return " hello ${name} " }, 闭包有返回值,没有 return 语句时返回 null
- 闭包和方法的区别:闭包可以作为入参,让其他方法调用。方法只能调用执行。
- 闭包结合 String 使用, 有 find , findAll , collect , any , every 等方法 传入闭包,对其进行相应的逻辑处理,并返回值
- 闭包默认三个字段 this, owner, delegate this 代表当前类或者对象, owner 代表当前类或对象或闭包(比 this 更细),delegate 默认为 owner ,唯一可以修改的字段, 可以通过委托策略 使用 delegate 字段 例如:closure.resolveStrategy = Clousure.DELEGATE_FIRST 这样字段赋值时会优先使用 dalegate 的字段值
- list 定义 def a = [ 1, 2, 3, 4, 5, 6 ] ,默认为 ArrayList , def a = [ 1, 2, 3,4, 5] as int[] 或 int[] a = [ 1, 2, 3, 4 ] 为int[] 数组
- list 也有 find , findAll , collect, any , count , every 等方法,sort 方法可传入闭包来修改排序规则
- map 默认为llinkedHashMap , 可以自行转化如11, map 键为字符串或者数字, 值可以为字符串或者集合类型
- map 也可以 each , find , findAll , any , count , every , sort 等操作
- range 定义 def a = 1…10 表示一个1到10的集合, 可以用 each , find , findAll , any , count , every 等操作, switch 语句 case 可以用来表示数字的范围
- groovy 定义的类,成员变量,成员方法默认都为 public 类型
- 类成员变量可以用 . 操作符或getter方法获取,但是本质上都是getter方法