我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評(píng)論 - 411, 引用 - 0
          數(shù)據(jù)加載中……

          Groovy之旅系列二(初識(shí)Groovy基本語(yǔ)法)

              昨天我們寫了一個(gè)HelloWorld,其實(shí)很簡(jiǎn)單的.呵呵.
          現(xiàn)在我們打開Groovy控制臺(tái)輸入:
          123+45*67
          按Ctrl+R,結(jié)果就會(huì)輸出來(lái)了.

          Result: 3138

            現(xiàn)在我們來(lái)看看給變更賦值

          = 1
          println x

          = new java.util.Date()
          println x

          = -3.1499392
          println x

          = false
          println x

          = "Hi"
          println x

          Groovy在你需要用時(shí)才給變量賦予類型和值.

          這在Java里是不可想象的.

          List和Maps:

          我們來(lái)看看如何來(lái)聲明一個(gè)集合:
          myList = [1776-133990928734928763]

          和Java一樣,集合的索引是從0開始的.你可以這樣訪問(wèn):
          println myList[0]

          將會(huì)輸出:
          1776
          你能得到集合的長(zhǎng)度
          println myList.size()
          將會(huì)輸出:
          6

          來(lái)看看Map怎樣聲明:
          scores = [ "Brett":100"Pete":"Did not finish""Andrew":86.87934 ]

          注意每個(gè)鍵的值類型都是不同的.
          現(xiàn)在我們?cè)L問(wèn)一下鍵為"Pete"的值,有兩種方式:
          println scores["Pete"]
          println scores.Pete

          會(huì)輸出:
          Did not finish
          Did not finish

          我們也能給scores["Pete"]賦予新值

          scores["Pete"= 3
          再次訪問(wèn)scores["Pete"]
          println scores["Pete"]

          將會(huì)輸出3

          你也可以創(chuàng)建一個(gè)空集合和空Map:

          emptyMap = [:]
          emptyList 
          = []

          為了確保集合或Map是空的,你可以輸出一個(gè)它們的大小:
          println emptyMap.size()
          println emptyList.size()
          輸出是0

          現(xiàn)在我們來(lái)看看條件執(zhí)行吧:
          amPM = Calendar.getInstance().get(Calendar.AM_PM)
          if (amPM == Calendar.AM)
          {
              println(
          "Good morning")
          }
           else {
              println(
          "Good evening")
          }


          這是一個(gè)簡(jiǎn)單的判斷是上午還是下午的小程序,對(duì)于第一行你可以參考Groovy-doc.

          Bool表達(dá)式:

          myBooleanVariable = true
          當(dāng)然還有一些復(fù)雜的bool表達(dá)式:
          * ==
          * !=
          * >
          * >=
          * <
          * <=
          來(lái)看看一些例子吧:
          titanicBoxOffice = 1234600000
          titanicDirector 
          = "James Cameron"

          trueLiesBoxOffice 
          = 219000000
          trueLiesDirector 
          = "James Cameron"

          returnOfTheKingBoxOffice 
          = 752200000
          returnOfTheKingDirector 
          = "Peter Jackson"

          theTwoTowersBoxOffice 
          = 581200000
          theTwoTowersDirector 
          = "PeterJackson"

          titanicBoxOffice 
          > returnOfTheKingBoxOffice  // evaluates to true
          titanicBoxOffice >= returnOfTheKingBoxOffice // evaluates to true
          titanicBoxOffice >= titanicBoxOffice         // evaulates to true
          titanicBoxOffice > titanicBoxOffice          // evaulates to false
          titanicBoxOffice + trueLiesBoxOffice < returnOfTheKingBoxOffice + theTwoTowersBoxOffice  // evaluates to false

          titanicDirector 
          > returnOfTheKingDirector    // evaluates to false, because "J" is before "P"
          titanicDirector < returnOfTheKingDirector    // evaluates to true
          titanicDirector >= "James Cameron"           // evaluates to true
          titanicDirector == "James Cameron"           // evaluates to true

          bool表達(dá)式對(duì)于if來(lái)說(shuō)是非常有用的:
          if (titanicBoxOffice + trueLiesBoxOffice > returnOfTheKingBoxOffice + theTwoTowersBoxOffice)
          {
              println(titanicDirector 
          + " is a better director than " + returnOfTheKingDirector)
          }
          再看關(guān)于天氣的例子:
          suvMap = ["Acura MDX":"\$36,700""Ford Explorer":"\$26,845"]
          if (suvMap["Hummer H3"!= null)
          {
               println(
          "A Hummer H3 will set you back "+suvMap["Hummer H3"]);
          }

          ok,今天到此為止吧.

          posted on 2008-04-29 09:00 々上善若水々 閱讀(2518) 評(píng)論(4)  編輯  收藏

          評(píng)論

          # re: Groovy之旅系列二(初識(shí)Groovy基本語(yǔ)法)  回復(fù)  更多評(píng)論   

          繼續(xù)努力.希望出一個(gè)系列.
          2008-04-29 10:51 | java begginger

          # re: Groovy之旅系列二(初識(shí)Groovy基本語(yǔ)法)[未登錄](méi)  回復(fù)  更多評(píng)論   

          初學(xué)者的例子
          2008-04-29 10:52 | BeanSoft

          # re: Groovy之旅系列二(初識(shí)Groovy基本語(yǔ)法)[未登錄](méi)  回復(fù)  更多評(píng)論   

          準(zhǔn)備學(xué)習(xí)Groovy,看來(lái)也沒(méi)那么復(fù)雜.
          2008-04-29 10:52 | shy

          # re: Groovy之旅系列二(初識(shí)Groovy基本語(yǔ)法)[未登錄](méi)  回復(fù)  更多評(píng)論   

          不錯(cuò),歡迎到國(guó)內(nèi)第一個(gè)基于Grails開發(fā)的并且討論Java&Grails技術(shù)網(wǎng)站
          www.javaread.com分享你的技術(shù)文章。
          2008-08-13 17:54 | javaread.com

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 和政县| 安岳县| 南靖县| 都昌县| 普兰县| 宁乡县| 曲麻莱县| 永安市| 冕宁县| 肃南| 平邑县| 大英县| 姚安县| 腾冲县| 汉沽区| 即墨市| 台江县| 邻水| 湘潭县| 芜湖市| 阳泉市| 横山县| 镇平县| 利津县| 达日县| 桑植县| 洪泽县| 河北省| 浪卡子县| 浠水县| 克什克腾旗| 缙云县| 吉木萨尔县| 建昌县| 南溪县| 西安市| 河东区| 土默特右旗| 扶绥县| 松潘县| 昭觉县|