欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Groovy中的特色知识点

程序员文章站 2024-03-25 10:14:10
...

1、in的使用:
in一般和for一起配合使用,产生的效果类似foreach,来看下吧

def arr=["上海","南京","福州"]
for(item in arr){
      println  item
}

上面的代码可以遍历list集合

2、groovy对象的比较

这种情况使用就比较多了,例如字符串、map集合、List集合的比较,来看看下面的这段代码:

//groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":20]
        def m2=["name":"李明","age":21]
        def m3=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }

特别是字符串的比较,是不是比java要简洁的多呢

如果要比较两个对象的引用是否相同在groovy中可以使用is,如下所示:

//判断对象的引用是否相同---(重要)
  println m1.is(m3)

3、if判断对象是否为空
groovy中判断对象是否为空,直接if(对象){}即可,这种便捷真的很强大

//if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }

但是这种写法还是不够简洁,groovy还提供了一种更简单的写法即 ?.

//更为方便的判断对象是否为空的操作符 ?.-------(重要)
println "${m5?.name}"

还有些数组的Groovy特色语法:

package org.lxh
public class UseRange{

    public static void main(def args){
        //定义一个range
        def range=1..15
        println range.contains(10);
        println range.from;
        println range.to;
        //使用range输出7天的日期
        def today = new Date()
        def nextWeek = today + 7
        (today..nextWeek).each{
            println it
        }

}