Groovy(二)groovy基础

说明: 如没有'特殊说明',仅仅研究'Groovy'的特性,'Java'的相关特性不在这里讲解

一  动态类型

1)定义一个变量之后,在'运行'时候,可以变成'任意类型的数值'

2)动态类型'不是'弱语言类型

3)通过'类型推断',通过'值'来推断'类型'

4)动态类型中的'类型是在运行时推断'的,'方法'及其'参数'也是在'运行时检查'的

(1)变量的定义

变量的名称('标识符'): 可以由'字母、数字、下划线'字符组成,'不能以数字开头','区分'大小写

①  类型定义

String str = 'Groovy'

②  类型def关键字定义

def str = 'Groovy'

def array = new String[4]

def student = new Student()

// def则由编译器'自行推导'变量的类型

③  直接声明

a = 10

不同方式声明变量的作用域不同

④  选择

在更大的程序中使用def关键字非常重要,因为它有助于定义可以找到变量的范围,并且可以帮助保留封装 -->def省略与否

二  基本数据类型

牢记: Groovy中'一切'皆对象

举例1: 10.times {print "${it}"}

举例2: 

int x = 10

println x.class //结果为:class java.lang.Integer

打印类型: Java和Groovy对比 -->var.getClass().name

本小节讲解'用的比较多':'Boolean'和'String'

(1)String

①  定义方式

1. 单引号''-->所见即所得,'不支持'变量内插,有'特殊字符'同样的通过'反斜杠转义'
2. 双引号""-->可以通过${var}进行"变量内插(GString)" -->'常用'
3. 三引号"""-->可以改变输出格式

1)引号

2)引号

3)引号

(2)Boolean

 1)布尔值放的是'对象的引用' -->Groovy 会自动将'表达式的值' 作为boolean看待

     类型      为真的条件

①  Boolean    true
②  Collection 集合不为空,'有元素'
③  Object[]   对象数组长度大于0,有元素
④  Iterator   hasNext()为true-->没有迭代完
⑤  Character  值'不为0'
⑥  Number     Double'不为0' 
⑦  Map        该映射不为空-->'有元素'
⑧  other      引用'不为null'

备注: Groovy允许'把一个对象'放在一个'boolean'表达式中

if (obj){

// do somethong

}

这里写图片描述

三   逻辑判断

涉及上面的'布尔表达式'

(1)  条件判断

if条件语句

(2)  循环

switch

++++++++++'(1)表达式代替'++++++++++

def topic = '/SAP/Organization/WMS2020'
 
switch(topic){
    case { topic.contains('/SAP/Organization/WMS') }:

备注: case表达式也可以进行'正则匹配'

case ~/^Switch.*Groovy$/:

++++++++++++++'注意事项'++++++++++++++

1)default不管放在哪里('甚至开头'),只有所有的'不匹配才会执行'

2)如果'case匹配了',但是没有'break'会继续向下执行

备注: 稍微'有点疑问'

②  for循环

Groovy核心: 'for in'掌握

涉及: '范围'运算符'..'

③  while continue break

1)  while '省略' -->'条件为真'一直执行

2)  continue('跳过本次循环,执行下一次循环')、break('跳出内层循环',进行下一次'外层循环')

四  方法

概念: 一段'组合的代码',可以'复用',被'调用多次'

了解:'行参'和'实参'的含义

①  无参数的方法

注意:'无参方法'的调用'()'不能省略,可以没有'return返回值'表达式

+++++++++++++++'无参'Groovy方法+++++++++++++++

// (1)定义方法
def method1(){
    println 'method1'
    // 方法可以没有返回值
}
// (2)调用无参方法
method1()

②  有参数的方法

def add(a,b){
  print a + b
}
// 调用-->有参数可以省略()
print 2,3

③  方法的返回值

细节1:可以'省略return'关键字

细节2:当'省略'的时候,返回的是'最后计算'的值

④  参数的默认值

五   变量的作用域

掌握: '局部'变量和'全局'变量

①  局部变量

+++++++++'报错的原因'+++++++++

原因: 因为'def'声明的变量也是'局部变量'

测试方法: '断点调试'

备注1: def 声明的变量,在'闭包内可以访问'到

备注2: 同'Java','方法里面声明'的变量,对于'方法外面而言'也是'局部变量',无法访问-->'省略'测试过程

②  全局变量

需求:如何让'方法访问外部变量'

1)把def去掉

备注:此时'不是全局变量'

2)注解的形式

1)让其成为'全局变量'-->'@Field'注解

import groovy.transform.Field
@Field name = 'wzj' //变成全局变量

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值