若是學過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類中的方法多了不少,方法來源以下:
因爲StringGroovyMethods大部分方法重寫了DefaultGroovyMethods中的方法,因此咱們瞭解StringGroovyMethods中的方法就行了。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的入門篇的開始。