Groovy窥探-入门语法1

  • 前情回顾

若是学过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

    1. 开发环境的搭建
    2. 建立一个Groovy的工程
  • 开始学习code

  1. 基础语法
    1.1 变量的类型
    类型和Java中的类型同样,也分为基本类型(byte、char、short、int、long、double)和对象类型。惟一不一样的点就是Groovy中的类型都会是对象类型。
    好比int的类型是Integer,double的类型是Double,也就是Java中的装箱类
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类中的方法多了不少,方法来源以下:

因为StringGroovyMethods大部分方法重写了DefaultGroovyMethods中的方法,因此咱们了解StringGroovyMethods中的方法就行了。
API:
字符传填充

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的入门篇的开始。

相关文章
相关标签/搜索