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的入門篇的開始。

相關文章
相關標籤/搜索