Groovy基础语法

1.数据类型

1.1 String字符串

  • contains()是否包含某个内容 返回True False

    groovy:000> "devops".contains("ops")
    ===> true
    groovy:000> "devops".contains("a")
    ===> false

  • size() 统计字符串的长度

    groovy:000> "devops".size()
    ===> 6

  • indexOf() 元素的索引

    groovy:000> "devops".indexOf('d')
    ===> 0
    groovy:000> "devops".indexOf('e')
    ===> 1
    groovy:000> "devops".indexOf('v')
    ===> 2
    groovy:000> "devops".indexOf('devops')

  • endsWith() 是否以某个内容结尾 返回 True False

    groovy:000> "devops".endsWith("s")
    ===> true
    groovy:000> "devops".endsWith("a")
    ===> false

  • 字符串的增加和减少

    groovy:000> "dev"+"ops"
    ===> devops
    groovy:000> "devops"-"ops"
    ===> dev

  • split 字符串分割默认是返回列表

    groovy:000> "devops".split()
    ===> [devops]
    groovy:000> "d e v o p s".split()
    ===> [d, e, v, o, p, s]
    groovy:000> "d,e,v,o,p,s".split(",")
    ===> [d, e, v, o, p, s]
    groovy:000> "d,e,v,o,p,s".split()
    ===> [d,e,v,o,p,s]
    groovy:000> "d,e,v,o,p,s".split(",")
    ===> [d, e, v, o, p, s]
    groovy:000>

1.2 list列表

  • 字符串添加

    groovy:000> [1,2,3,4,5]+5
    ===> [1, 2, 3, 4, 5, 5]
    groovy:000> [1,2,3,4,5]<<6
    ===> [1, 2, 3, 4, 5, 6]

  • unique() 去重

    groovy:000> [1,2,3,4,5,5,5,5].unique()
    ===> [1, 2, 3, 4, 5]

  • contains() 包含特定元素
    groovy:000> [1,2,3,4,5,5,5,5].contains(2)
    ===> true
    groovy:000> [1,2,3,4,5,5,5,5].contains(333)
    ===> false

    groovy:000> a = "java,python,nodejs".split(",")
    ===> [java, python, nodejs]
    groovy:000> for (i in a){
    groovy:001>     println(i)
    groovy:002> }
    java
    python
    nodejs
    ===> null

1.3 map

size() map大小
[’key’]  .key get()  获取value
isEmpty() 是否为空
containKey() 是否包含key
containValue() 是否包含指定的value
keySet() 生成key的列表
each{} 遍历map
remove(‘a‘)  删除元素(k-v)

练习

groovy:000> [:]
===> [:]
groovy:000> [1:2]
===> [1:2]
groovy:000> [1:2][1]
===> 2
groovy:000> [1:2,3:4,5:6]
===> [1:2, 3:4, 5:6]
groovy:000> [1:2,3:4,5:6].keySet()
===> [1, 3, 5]
groovy:000> [1:2,3:4,5:6].values()
===> [2, 4, 6]
groovy:000> [1:2,3:4,5:6] + [7:8]
===> [1:2, 3:4, 5:6, 7:8]
groovy:000> [1:2,3:4,5:6] - [7:8]
===> [1:2, 3:4, 5:6]

2.if语句

groovy:000> buildtype = "java"
===> java
groovy:000> if (buildtype == "java"){
groovy:001>     println("this is java project")
groovy:002> }else if (buildtype == "python"){
groovy:003>     println("this is java project")
groovy:004> }else{
groovy:005>     println("this is java project")
groovy:006> }
this is java project
===> null

3.switch语法

switch("${buildType}"){
    case ”maven":
    //xxxx
        break;
    case ”ant":
    //xxxx
        break;
    default:
    //xxxx
}

练习
switch("${buildType}"){
    case 'maven':
        println("This is a maven project !")
        break;
        ;;

    case 'gradle':
        println("This is a gradle projects!")
        break;
        ;;

    default:
        println("Project Type Error!")
        ;;
}

4.for循环

test = [1,2,3]
for ( i in test){
    ///xxxxxx
    break;
}

//代码
langs = ['java','python','groovy']

for ( lang in langs ){
    if (lang == "java"){
        println("lang error in java")
    }else {
        println("lang is ${lang}")
    }
}
原文地址:https://www.cnblogs.com/precipitation/p/15097598.html