groovy基本语法介绍(与Java、nodeJS对照)
⼀、概述:
Groovy是⼀种基于Java平台的⾯向对象语⾔。
在Groovy中,如在任何其他⾯向对象语⾔中⼀样,存在类和对象的概念以表⽰编程语⾔的对象定向性质。
Java和Groovy的语法⾮常相似。
Groovy 可以与 Java 语⾔⽆缝对接,在写 Groovy 的时候如果忘记了语法可以直接按Java的语法继续写,也可以在 Java 中调⽤ Groovy 脚本,都可以很好的⼯作,这有效的降低了 Java 开发者学习 Groovy 的成本。
Groovy的特点:
同时⽀持静态和动态类型。
⽀持运算符重载。
本地语法列表和关联数组。
对正则表达式的本地⽀持。
各种标记语⾔,如XML和HTML原⽣⽀持。
Groovy对于Java开发⼈员来说很简单,因为Java和Groovy的语法⾮常相似。
您可以使⽤现有的Java库。
Groovy扩展了java.lang.Object。
⼆、基本语法:
1、定义变量:
Groovy中的变量可以通过两种⽅式定义:
(1)使⽤数据类型,基本的数据类型有int、float、String等,基本与java相同;
(2)使⽤def关键字;
Groovy 句末不强制加分号。
与nodeJS⽐较
Groovy nodeJS
int num=0;String str = “zhongfu”; 或 def num =0; def str =
“zhongfu” ;let num =0; let str = ‘zhongfu’; 或 var num = 0; var str =
‘zhongfu’ ;
2、打印变量:
Groovy nodeJs println(“zhongfu”+”xinxi”); println “zhongfuxinxi”; print console.log(“zhongfu”+”xinxi”);
3、运算符:
Groovy算数运算符、关系运算符、逻辑运算符、位运算符均与nodeJS⼀致。
Groovy 中==等价于 Java 中的equals⽅法。
/
/In Groovy
String str1 ="123";
String str2 =new String("123");
if(str1 == str2){
println("相等");
}else{
println("否");
}
// 打印 “相等”
Groovy⽀持范围运算符概念。
//这⾥定义了⼀个简单的整数范围,存储到⼀个局部变量称为范围内的下限为0和上限为5
def range =0..5;
使⽤⽰例:
class Example {
static void main(String[] args){
def range =5..10;
println(range);
//get为从范围中获取对象,这⾥打印7
(2));
}
}
4、循环:
Groovy循环语句⽀持while、for、for-in、break、continue,整体与nodeJS、java⼀致。⽰例:
class Example {
static void main(String[] args){
//for-in
int[] array =[0,1,2,3];
for(int i in array){
println(i);
if(i ==2)
break;
}
//for-each
for(int i : array){
println i;
}
//结合范围运算符
for(i in 0..5){
println i //0,1,2,3,4,5
}
//for
for(int i =0;i<5;i++){
println(i);
}
/
/while
int count =0;
while(count<5){
println(count);
count++;
}
}
}
5、条件语句:
Groovy条件语句if/else、switch与Java、nodeJS ⼀致
6、⽅法:
**Groovy中的⽅法是使⽤返回类型或使⽤def关键字定义的。**⽅法的返回类型可以不需要声明,但需添加def关键字。
定义参数时,不必显式定义类型。可以添加修饰符,如public,private和protected。默认情况下,如果未提供可见性修饰符,则该⽅法为public。
有返回值的⽅法return可以被省略,默认返回最后⼀⾏代码的运⾏结果,如果使⽤了return关键字则返回指定的返回值。
有形参的⽅法,调⽤时括号可以省略。
Groovy ⽅法的其他特性与Java⼀样,⽐如⽀持重载、不定长参数(…)等。
与nodeJS对照⽰例:
Groovy:
public class Example {
def DisplayName(){
println("This is how methods work in groovy");
println("This is an example of a simple method");
}
int sum(int a,int b){
int sum = a+b;
return sum;
}
//形参不必显⽰定义类型
def sum(a,b,c){
def sum = a+b+c;
//return 可以省略
sum;
}
def add(int a,int b){
return a + b
}
public static void main(String[] args){
Example ex =new Example();
ex.DisplayName();
println(ex.sum(1,2));//3
println(ex.sum(1,2,3));//6
println ex.sum('1','2','3');//123
/
/有形参的⽅法括号可以省略
def sum = ex.add 1,2;
println sum;//3
}
}
NodeJS:
function sum1(a,b){
let sum = a+b;
return sum;
}
function sum2(a,b,c){
let sum = a+b+c;
return sum;
}
console.log(sum1(1,2));
console.log(sum2(1,2,3));
7、列表(List):
Groovy中可⽤的列表⽅法:
Groovy NodeJS⽅法描述
add( )push()将新值附加到此列表的末尾。
get( )下标:list[]返回此列表中指定位置的元素。
contains( )indexOf()如果此列表包含指定的值,则返回true。
isEmpty( )通过length()判空
minus( )没有对应的⽅法创建⼀个由原列表组成的除去指定元素的新列表plus ( )没有对应的原⽣⽅法创建⼀个由原列表元素和指定的元素组成的新列表。
pop( )pop( )从此列表中删除最后⼀个项⽬
remove( )splice(param,param)删除列表中指定位置的元素
reverse()reverse()创建与原始列表的元素相反的新列表size( )length()获取此列表中的元素数。
sort( )sort()返回原始列表的排序副本。
⽰例:
Groovy:
class Example {
static void main(String[] args){
def lst =[];//定义⼀个空list
lst =[11,12,13,14];
lst.add(15);//add
lst.pop();//pop
ains(12));// true
//创建⼀个新的list,由原列表删除指定元素组成
def newlst =[];
newlst = lst.minus([12,13]);
println(newlst);// [11, 14]
//创建⼀个新的list,由原列表增加新元素构成
newlst = lst.plus([15,16]);
println(newlst);//[11, 12, 13, 14, 15, 16]
/
/删除List中的指定位置的元素,返回值为该元素的值ve(2));// 13
println(lst);//[11, 12, 14]
//反转
def revlst = verse();
println(revlst);//[14, 12, 11]
//排序
def mst =[13,12,15,14];
def newmst = mst.sort();
println(newmst);//[12, 13, 14, 15]
//遍历list,使⽤闭包
mst.forEach{
entry ->
println entry;
};
//13,12,15,14
mst.forEach{
println it;//it为Groovy的关键字
}
//13,12,15,14
}
}
NodeJS:
let list =[1,2,3,4,5,8];
list.push(7);原生js和js的区别
console.log(list);
console.log(list[0]);
console.log(list.indexOf(9));// -1
list.splice(0,1);
list.sort();
console.log(list)
8、Array:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论