若是学过Java的小伙伴,那么对于上手Groovy这门课程就会变的so easy,在咱们学习一门新的语言的时候,首先要学习的就是编写Hello World。
下面咱们建立一个hello.groovy的文件 看下Groovy的Hello world的写法。java
Class HelloWorld{
public static void main(String[] args){
System.out.println("Hello groovy!);
}
}
复制代码
这就是Groovy的代码,可能你会说这不就是Java语言吗?没错,这就是Java语言,因此Groovy代码能够彻底使用Java语言来编写。
另外,因为Groovy代码具备敏捷性的特色,全部上面的代码能够改写为api
Class HelloWorld{
static void main(String[] args){
System.out.println("Hello groovy!)
}
}
复制代码
在Java中须要建立Class类,还须要一个main方法才能执行,经过下面代码看下Groovy的强大之处学习
println ("Hello groovy")
复制代码
一样,上面三种写法都会输出Hello groovy的结果this
Hello groovy
复制代码
前期准备spa
开始学习code
int x=10
println(x.class)
double y=3.14
println(y.class)
复制代码
最后发现获得的结果是cdn
java.lang.Integer
java.lang.Double
复制代码
因而可知,基本数据类型的最终结果的确会变成对象类型。
因此能够总结为:Groovy中的全部事物皆为对象
1.2 变量定义
强定义
强定义就是相似于int x,double y这种的变量定义
弱定义
若定义变量的声明可使用关键字def,如对象
def x=10
println(x.class)
def y=3.14
println(y.class)
复制代码
打印的结果blog
java.lang.Integer
java.lang.Double
复制代码
Q:何时该使用def呢?
A:若是说是本身使用的时候,不须要供外部引用的时候咱们就可使用def,若是说外部须要调用改属性的时候,则须要采用java的强引用类型。索引
总结:关键字def声明的变量至关因而Object类型的,会根据赋值的结果来自动转换为对应的类型
1.3 字符串
在Java中咱们使用字符串经常使用的类是String,在Groovy中咱们除了能够用String类外,还可使用它自身的GString类
关于String类不在过多叙述,下面重点说说GSting这个类。常见的定义方式
//单引号
def name='a single name'
def name='a single \'a\' name'
//三引号能够输出有格式的字符串
def mutilName=''' line one line two line three '''
//双引号 可扩展字符串
def doubleName="this a common String"
def sayHello =“Hello: ${doubleName}”
println(sayhello.class)
def sum="The sum of 2 and 3 equalus ${2+3}"
复制代码
扩展表达式使用${}的方式表达式
不论是几个引号,他们的类属于java.lang.String.可是若是是包含了扩展表达式的定义后,则变成了GString类型 **Q:**可否将String个Gstring进行转换? **A:**请看以下代码
def sum1="The sum of 2 and 3 equalus ${2+3}"
def result=echo(sum1)
String echo(String msg){
return msg
}
复制代码
经过代码发现,GString和String是彻底能够进行转换的
在Groovy中经过调用变量的方法发现比Java中的String类中的方法多了不少,方法来源以下:
static String center(CharSequence self, Number numberOfChars, CharSequence padding)
numberOfChars:字符传填充的位置
padding:填充的内容
注:若是padding不赋值的状况下默认添加空格
def str="groovy"
println str.center(8,'a')
println str.center(8)
static String padLeft(String self, Number numberOfChars, CharSequence padding)
static String padRight(String self, Number numberOfChars, CharSequence padding)
def str="groovy"
println str.padLeft(8,'a')
println str.padRight(8,'a')
复制代码
字符传比较
compareTo(Stirng anotherStr)
compareToIgnoreCase(String str)
也可使用操做符进行比较
def str1="groovy"
def str2="Hello"
println str1>str2
复制代码
字符串索引
static String getAt(GString text, int index)
def indexStr="groovy"
println indexStr.getAt(0)
println indexStr[0] //但是经过中括号获取下标值
println indexStr[0..1]//输出结果为gr
//删除另外一个字符串中包含的内容
def str1="groovy Hello"
def str2="Hello"
static String minus(String self, Object target)
等价于str1-str2
复制代码
字符串其余方法
//字符串倒序
static String reverse(CharSequence self)
//字符串首字母大写
public static String capitalize(CharSequence self)
//是否为数字
public static boolean isNumber(CharSequence self)
//转换为基本类型
public static Integer toInteger(CharSequence self)
public static Double toDouble(CharSequence self)
复制代码
到此就算是Groovy的入门篇的开始。