因为公司最近在做CI的东西,需要用到grovvy来做支撑,所以要学习groovy了,还是从基础的教程摘起,这次是 w3school的grovvy的教程,
安装
mac安装: brew install groovy
进入命令行模式
groovysh
基本语法
注释
单行注释使用//在该行的任何位置来识别。一个例子如下所示 -
class Example {
static void main(String[] args) {
// Using a simple println statement to print output to the console
println('Hello World');
}
}
多行注释标识与在开始/ *和* /识别多行注释的末尾。
class Example {
static void main(String[] args) {
/* This program is the first program
This program shows how to display hello world */
println('Hello World');
}
}
分号
就像Java编程语言,它需要具有分号在Groovy定义多个语句之间进行区分。
class Example {
static void main(String[] args) {
// One can see the use of a semi-colon after each statement
def x = 5;
println('Hello World');
}
}
上述例子示出了分号使用了不同行的代码语句之间进行区分。
身份标识
标识符被用来定义变量,函数或其他用户定义的变量。标识符以字母开头,美元或下划线。他们不能以数字开头。以下是有效标识符的一些例子
def employeename
def student1
def student_name
其中,DEF是在Groovy用来定义标识符的关键字。
下面是一个如何在我们的Hello World程序中使用标识符的代码示例。
class Example {
static void main(String[] args){
def x = 5;
println('Hello world');
println(x);
}
}
在上述的例子中,变量x被用作标识符。
变量
class Example {
static void main(String[] args) {
// x is defined as a variable
String x = "Hello";
int x = 5;
// Defining a variable in uppercase
int X = 6;
// The value of the variable is printed to the console
println(x);
}
}
大小写是区分的 不同的参数
当我们运行上面的程序,我们会得到以下结果 -
Hello
运算符
范围运算
def range = 0..5
println(range)
#输出
[0, 1, 2, 3, 4, 5, 6]
循环
- while语句
while语句首先通过计算条件表达式(布尔值)来执行,如果结果为真,则执行while循环中的语句。
while(count<5) {
println(count);
count++;
}
- 2 for语句
for语句用于遍历一组值。
for(int i = 0;i<5;i++) {
println(i);
}
- 3 for-in语句
for-in语句用于遍历一组值。
int[] array = [0,1,2,3];
for(int i in array) {
println(i);
}
循环控制语句
- break语句
break语句用于改变循环和switch语句内的控制流。
for(int i in array) {
println(i);
if(i == 2)
break;
}
- continue语句
continue语句补充了break语句。它的使用仅限于while和for循环。
for(int i in array) {
println(i);
if(i == 2)
continue;
}
条件语句
- if else / if
- switch
switch(expression) {
case expression #1:
statement #1
...
case expression #2:
statement #2
...
case expression #N:
statement #N
...
default:
statement #Default
...
}
Groovy 方法
Groovy中的方法是使用返回类型或使用def关键字定义的。方法可以接收任意数量的参数。定义参数时,不必显式定义类型。可以添加修饰符,如public,private和protected。默认情况下,如果未提供可见性修饰符,则该方法为public。
最简单的方法是没有参数的方法,如下所示:
def methodName() {
//Method code
}
下面是一个简单方法的例子
class Example {
static def DisplayName() {
println("This is how methods work in groovy");
println("This is an example of a simple method");
}
static void main(String[] args) {
DisplayName();
}
}
在上面的例子中,DisplayName是一个简单的方法,它由两个println语句组成,用于向控制台输出一些文本。在我们的静态main方法中,我们只是调用DisplayName方法。上述方法的输出将是 -
This is how methods work in groovy
This is an example of a simple method
方法参数
def methodName(parameter1, parameter2, parameter3) {
// Method code goes here
}
//ex
static void sum(int a,int b) {
int c = a+b;
println(c);
}
默认参数
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
带有返回值
class Example {
static void sum(int a,int b = 5) {
int c = a+b;
return c;
}
static void main(String[] args) {
println(sum(6));
}
}
列表
示例
[11,12,13,14] - 整数值列表
['Angular','Groovy','Java'] - 字符串列表
[1,2,[3,4],5] - 嵌套列表
['Groovy',21,2.11] - 异构的对象引用列表
[] - 一个空列表
包含方法
映射
['TopicName':'Lists','TopicName':'Maps'] - 具有TopicName作为键的键值对的集合及其相应的值。
[:] - 空映射。
包含方法