前面咱們瞭解了groovy的一些概念java
接下來咱們來看下groovy的語法編程
學習任何一門語言,語法是語言最基礎和最核心的東西微信
即便再怎麼懂編程思想,可是不懂編程語言,那麼是不可能寫出具體的代碼markdown
語法的學習是沒有捷徑能夠走的,惟一的辦法就是多練編程語言
groovy中的變量,主要分下面兩個點:post
(1)變量的類型學習
基本類型
對象類型
複製代碼
(2)變量的定義spa
強類型定義
弱類型定義
複製代碼
基本類型,如:byte,int,long等code
對象類型,如:String等orm
這些和咱們的java相似,可是咱們的groovy的類型最終都是對象類型的
也就groovy是不存在基本類型的
首先是咱們的基本型類型,groovy語言中,有這麼一個特色
表面上的基本型類型最終都會被轉換爲引用型類型
好比下面的例子:
首先是咱們的基本型類型,groovy語言中,有這麼一個特色,表面上的基本型類型最終都會
被轉換爲引用型類型,好比下面的例子:
圖片中能夠看出,雖然定義的是int x = 10,可是打印出來的類型倒是Integer類型
可是對於咱們編程來講,是沒有影響的
轉換的工做都是編譯器幫咱們轉換等的
這個的話和咱們的java差異就比較大了
首先是定義分強類型和弱類型定義,這一點到和java有點像
上面的例子中,int x = 10 就是一種強類型的定義方式
意思就是在聲明變量的過程當中,也把變量的類型指定了
弱類型定義,不須要提早指定變量的類型,經過def這個關鍵字來告訴編譯器
這一點是java沒有的特色
下面舉個例子:
能夠看出,經過def定義的變量,編譯器會去推斷變量的類型
那麼兩種定義類型,應該怎麼選擇?
根據經驗,通常變量若是是本身的,不會被其餘類使用,或者其餘應用模塊
推薦def方式定義,由於本身用,本身知道類型而且能夠動態轉換爲其餘類型
若是其餘類或者模塊公用的變量,那麼建議不要用def方式定義,由於強類型定義方式
是不能動態改變類型的,當外界傳給咱們值的時候,是比較明確的
舉個能夠動態改變的例子:
一開始a類型爲int
後來直接賦值後,變爲了string
好了,到這裏兩種變量的定義就講完了,和java差很少,不一樣的是
類型的動態變化
哈哈,該篇就寫到這裏(一塊兒體系化學習,一塊兒成長)