START >_ 有人说groovy是世界上最麻烦的脚本语言,还要加上一个”没有之一”,但是作为运维,经常避免不了跟jenkins打交道,写jenkins file pipeline的时候就需要用到它,我本人其实不喜欢java,groovy又是从groovy来的,不过工作需要,还是要学一学基础的语法,反正也不是太难.本文记录下来,方便以后要写的时候参考.
安装 看 官网
运行方式 首先在IDE(vs code) 写个Hello World.
1 2 3 4 5 6 7 8 class Example { static void main(String[] args) { println 'Hello World' println "Hello World" ; } }
运行
输出
标识符 def
是groovy中用来定义标识符
的关键字,标识符
被用来定义变量,函数或其他用户定义的变量,标识符以字母,$或_开头,不能以数字开头,例如:
1 2 3 def abcdef $abcdef _student
举个🌰:
1 2 3 4 5 6 7 8 9 class Example { static void main(String[] args) { String x = "Hello" ; println(x); def _Name = "你好" ; println(_Name); println "Hello World" ; } }
输出
数据类型 除了用def
定义变量,也可以用一个确定的数字类型来声明一个变量,所以下面这样也可以:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Example { static void main(String[] args) { String str = "Hello" ; int x = 5 ; long y = 100 L; float a = 10.56 f; double b = 10.5e40 ; char c = 'A' ; Boolean l = true ; println(str) println(x) println(y) println(a) println(b) println(c) println(l) } }
变量打印 格式化输出
1 2 3 4 5 6 7 8 9 10 11 12 class Example { static void main(String[] args) { int x = 5 ; int y = 6 ; println("x = " + x + " and X =" + X); println("x = ${x} and X = ${X}" ); println('x = ${x} and X = ${X}' ); } }
输出如下:
1 2 3 x = 5 and X = 6 x = 5 and X = 6 x = ${x} and X = ${X}
从这里就看出有点python的影子也有点shell的感觉(个人感觉),所以说groovy是基于java参考python和其他语言开发出来的新语言.
三引号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Example { static void main(String[] args) { int x = 5 ; int y = 6 ; println """ x = ${x} y = ${y} """ println ''' x = ${x} y = ${y} ''' } }
输出如下
1 2 3 4 5 x = 5 y = 6 x = ${x} y = ${X}
函数 groovy可以使用返回类型
或def
定义 可以接收任意数量的参数 定义参数时,不必显式定义类型,可以加修饰符例如:public (默认) private protected 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Example { static def PrintHello() { println("hello" ); } static int sum(int a, int b, int c = 10 ) { int d = a + b + c; return d; } static void main(String[] args) { PrintHello(); println(sum(5 , 50 )) } }
流程控制 条件 1 2 3 4 5 6 7 8 9 10 11 12 class Example { static void main(String[] args) { int a= 2 } if (a < 100 ) { println("The value is less than 100" ); } else { println("The value is greater than 100" ); } }
循环 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 class Example { static void main(String[] args) { int count = 0 ; println("while 循环:" ); while (count < 5 ) { println(count); count++; } println("for 循环:" ); for (int i=0 ; i<5 ; i++) { println(i); } println("for-in 循环" ); int [] array = [0 ,1 ,2 ,3 ]; for (int i in array) { println(i); } println("for-in 范围循环" ); for (int i in 1. .5 ) { println(i); } println("for-in 循环map" ); def ageMap = ["Peter" : 31 , "Zoe" : 33 , "Nancy" : 22 ]; for (am in ageMap) { println(am); } } }
输出如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 while 循环: 0 1 2 3 4for 循环: 0 1 2 3 4 for-in 循环: 0 1 2 3 for-in 范围循环: 1 2 3 4 5 for-in 循环map Ken=21 John=25 Sally=22
最后 其实这是这篇博客 的”复制粘贴”,查重率高达80%,我自己手敲一遍加深下印象,有些地方稍稍以自己的方式写而已.一篇下来总的来说给我感觉groovy就像是套上java外套的python或者shell,当然它也支持面向对象编程等高级功能.但是对于我来说上面这些知识点对写一下jenkins file的脚本应该也够用了.