<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Groovy之旅系列三(數據編碼與閉包)

    Groovy不同于其它編譯語言的事情之一是你能創建優先的類對象.意思是說你
    能定義一大堆代碼并且可以在里面放string或integer.看看下面的代碼:

    square = {it * it}
    這里的it是關鍵字,不能改變.在花括號里面的表達式"it * it"告訴Groovy編譯器把這個表達
    式當作代碼來對待.在軟件世界,這個叫做"閉包".在這個例子中,設計者 "it" 是你要給這個函數
    賦值的參數.我們像以下方式來訪問:
    square(9)
    看看結果是什么:81

    再試試下面這句:
    square = {(it * it / 2 + 3/it }
    結果:
    Result: 4.8333333333
    你可能給square賦一值也沒什么意思.這有一些內建函數,你能像這樣做為一個參數
    來調用它.來看一下"collect"函數在數組中的例子:
    1234 ].collect(square)

    這個表達式的意思是,用1,2,3,4創建一個數組,然后調用"collect"方法,進入我們上面定義的閉包.collect方法貫穿數組里的每一項,每一項都調用閉包,然后把結果放入一個新數組中.
    結果是:
    14916 ]
    你能使用更多的參數閉包,具體可參看
    http://groovy.codehaus.org/groovy-jdk.html


    默認的閉包帶一個參數"it",你也能創建閉包用自命名參數.例如方法Map.each()
    就是一個閉包兩個參數,它綁定了鍵和值.
    printMapClosure = { key, value -> println key + "=" + value }
    "yue" : "wu""lane" : "burks""sudha" : "saseethiaseeleethialeselan" ].each(printMapClosure)

    結果:
    yue=wu
    lane
    =burks
    sudha
    =saseethiaseeleethialeselan


    還有一些閉包例子:
    fullString = ""
    orderParts 
    = ["BUY"200"Hot Dogs""1"]
    orderParts.each 
    {
      fullString 
    += it + " "
    }


    println fullString

    下面是匿名閉包的例子:
    myMap = ["asdf"1 , "qwer" : 2"sdfg" : 10]

    result 
    = 0
    myMap.keySet().each( 
    { result+= myMap[it] } )
    println result

    文件處理:

    myFileDirectory = "C:\\temp\\"
    myFileName 
    = "myfile.txt"
    myFile 
    = new File(myFileDirectory + myFileName)

    printFileLine 
    = { println "File line: " + it }

    myFile.eachLine( printFileLine )
    這個例子打印C:\myfile.txt的內容,你可以隨便輸入一些內容進行測試.

    字符串處理:
    stringDate = "2005-07-04"
    dateArray 
    = stringDate.split("-")
    year 
    = dateArray[0].toInteger()
    year 
    = year + 1
    newDate 
    = year + "-" + dateArray[1+ "-" + dateArray[2]

    這里和Java語法的差不多了.
    注意第三行一定要toInteger().
    不然的話+1就成拼湊字符串了.

    自己運行一下看看輸出結果吧.


    posted on 2008-05-07 14:26 々上善若水々 閱讀(911) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 白白色免费在线视频| 中文字幕一区二区三区免费视频| 无码av免费一区二区三区试看| 亚洲视频一区二区| 一级白嫩美女毛片免费| 免费一级特黄特色大片在线| 深夜国产福利99亚洲视频| 亚洲AV无码资源在线观看| 免费黄色大片网站| 亚洲精品无码久久久久去q| 精品亚洲成A人无码成A在线观看| 最近中文字幕mv免费高清在线| 亚洲男人都懂得羞羞网站| 亚洲av片在线观看| 免费国内精品久久久久影院| 色爽黄1000部免费软件下载| 84pao强力永久免费高清| 亚洲欧洲日产国码二区首页| 国产免费福利体检区久久| 日本免费高清一本视频| 国产成人久久精品亚洲小说| 亚洲国产成人乱码精品女人久久久不卡| 亚洲成电影在线观看青青| 成人免费一级毛片在线播放视频| 无码专区—VA亚洲V天堂| 国产精品免费αv视频| 国产男女猛烈无遮挡免费视频 | 日本人的色道免费网站| 中国亚洲女人69内射少妇| 久久一区二区三区免费播放| 亚洲w码欧洲s码免费| 亚洲Av无码国产情品久久| 国产啪精品视频网站免费尤物 | 亚洲成熟xxxxx电影| 思思re热免费精品视频66| 美女18一级毛片免费看| 亚洲国产精品自在在线观看| 日韩吃奶摸下AA片免费观看| 青青草原精品国产亚洲av| 成人奭片免费观看| 在线免费观看伊人三级电影|