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

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

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

    Groovy入門篇--Getting started

    Posted on 2007-08-15 12:43 puras 閱讀(2653) 評論(1)  編輯  收藏 所屬分類: Groovy

    原文:http://groovy.codehaus.org/Tutorial+1+-+Getting+started

    譯者:puras

    1.設(shè)置Java環(huán)境

    Groovy需要Java,所以你需要有一個Java的可用版本(1.4或是更高).如果你還沒有安裝Java,可按照下面一步步的進(jìn)行:

    • http://java.sun.com上獲取最近的Java的發(fā)行版
    • 執(zhí)行安裝程序
    • 設(shè)置JAVA_HOME環(huán)境變量.在Window上的話,參照下面的步驟:
    • 打開系統(tǒng)屬性面板
    • 點(diǎn)擊高枝標(biāo)簽
    • 點(diǎn)擊環(huán)境變量按鈕
    • 添加一個新的系統(tǒng)變量,名為JAVA_HOME和Java的安裝目錄(我的是:D:\Program Files\jdk1.6.0)
    • 將%JAVA_HOME%\bin添加到你的系統(tǒng)路徑中(可選)

    2.設(shè)置Groovy環(huán)境

    下載頁下載Groovy的安裝文件或是二進(jìn)制文件,并跟隨說明安裝.(當(dāng)前有一個問題是將Groovy安裝在Windows下時,安裝路徑中不能出現(xiàn)空格.所以,將默認(rèn)的安裝路徑c:\Program Files\Groovy替換成類似于D:\groovy-1.0的路徑)

    或者

    • 網(wǎng)站上獲取一個Croovy發(fā)行版,并將它復(fù)制到你的硬盤上
    • 解壓Groovy的壓縮包,并將其放至到你硬盤上合適的位置.如D:\groovy-1.0-jsr-06
      • 添加一個環(huán)境變量GROOVY_HOME,并將其值設(shè)置為你的Groovy的安裝目錄,我的是D:\groovy-1.0
      • 打開命令提示符,輸入"set",查看返回的結(jié)果看設(shè)置是否正確
    • 可將%GROOVY_HOME%\bin添加到你的系統(tǒng)路徑
    • 嘗試雙擊打開Groovy發(fā)行版中的bin目錄下的groovyConsole.bat文件.如果它不能工作,打開命令提示符,將目錄轉(zhuǎn)到bin目錄下,再次執(zhí)行它,看看有什么錯誤信息

    3.設(shè)置可選的Jar文件

    你也許想要獲得一些可選的Jar文件,或是對應(yīng)于Groovy的模塊(詳細(xì)說明查看模塊的文檔),或是對應(yīng)于想要用于Groovy的其他的Java類.下面列出了一些可能性:

    名稱 來自于 描述
    jtds-version.jar

     http://jtds.sourceforge.net

    SQL Server和/或Sybase的數(shù)據(jù)庫驅(qū)動
    hsqldb-version.jar http://www.hsqldb.org/ HSQLDB的數(shù)據(jù)庫驅(qū)動,一個100%的Java數(shù)據(jù)庫

    讓Groovy知道你添加的Jar文件的一個推薦的方式是將它們放到一個預(yù)先確定的位置.你所安裝的Groovy應(yīng)該包含一個名為"groovy-starter.conf"的文件.在這個文件中,在注釋的下面添加如下的一行:

    load ${user.home}/.groovy/lib/*

    "user.home"這個系統(tǒng)屬性由你的操作系統(tǒng)設(shè)置.(我的是c:\Document和Settings\puras.)現(xiàn)在將你的Jar文件放置到.groovy/lib目錄中.

    注:做為另一種選擇,你可以設(shè)置一個CLASSPATH變量,并確定它包含了你所添加的Jar文件,否則Groovy將以空的或是沒有CLASSPATH變量來工作.

    4.Hello World

    在groovyConsole窗口的頂部(打開groovyConsole可以通過在Groovy下的bin中雙擊groovyConsole.bat文件,或是以命令提示符下輸入groovyConsole),輸入下面的代碼:

    println "Hello, World!"

    之后按下"Ctrl+R".

    groovyConsole下部的窗口會顯示:

    groovy> println "Hello, World!"

    Hello, World!

    (注:原文說打印出來的文字將在Window的命令窗口中顯示,就是groovyConsole后面的黑色的窗口,但在我的機(jī)器是直接顯示在groovyConsole下部的窗口中的,應(yīng)該是原文所使用的Groovy的版本較老)

    以"groovy>"開頭的一行文本是控制臺要處理的.而"Hello,World!"則是執(zhí)行的結(jié)果.

    接下來使用一些實(shí)際的值.用下面的一行來替換掉控制臺中的文本:

    123+45*67

    或是你喜歡的算術(shù)表達(dá)式,之后按下"Ctrl+R".(我將不再告訴你按下Ctrl+R,我想你已經(jīng)知道該如何做了).之后結(jié)果的值會顯示在groovyConsole的下部窗口中.

    5.變量

    你可以為變量賦上值,以備之后使用.嘗試下面的:

    x = 1
    println x

    x = new java.util.Date()
    println x

    x = -3.1499392
    println x

    x = false
    println x

    x = "Hi"
    println x

    6.Lists and Maps

    Groovy中內(nèi)置了兩種非常重要的數(shù)據(jù)類型:List和Map(List可以操作Java中的數(shù)組).Lists被用于存儲有序的集合數(shù)據(jù).例如一個由你喜受的整型數(shù)組成的整型List,看起來像下面這樣:

    myList = [1776, -1, 33, 99, 0, 928734928763]

    你可以使用方括號來訪問List中存儲的條目(索引從0開始):

    println myList[0]

    輸出的結(jié)果應(yīng)該是:

    1776

    你可以使用"size"方法來獲取List的長度:

    println myList.size()

    將輸出:

    6

    但通常你可能不需要這個長度,因?yàn)椴幌馢ava,循環(huán)一個List的首選方法是使用"each"方法,將在下面的"Code as Data"部門中講解.

    另一個本地數(shù)據(jù)類型結(jié)構(gòu)稱為Map.它被用于存儲"聯(lián)合數(shù)組"或是"字典".那是一個無序的不同種類數(shù)據(jù)的集合.例如,就說我們想存儲名字和智商,我們將會這樣做:

    scores = [ "Brett":100, "Pete":"Did not finish", "Andrew":86.87934 ]

    每個存儲在Map中的值都有不同的類型.Brett的是一個整型,Pete的是一個字符串,而Andrew則是一個浮點(diǎn)數(shù).我們可以通過兩種主要的方式來訪問Map中的值:

    println scores["Pete"]
    println scores.Pete

    將會輸出:

    Did not finish
    Did not finish

    向一個Map中添加數(shù)據(jù),語法與向一個List中添加數(shù)據(jù)相似.例如,如果Pete重新做了IQ測試,并得到了3,我們可以:

    scores["Pete"] = 3

    稍后我們再取它的值,它將是3

    println scores["Pete"]

    將輸出3.

    另一方面,你可以用下面的方法來創(chuàng)建一個空的Map或是一個空的List:

    emptyMap = [:]
    emptyList = []

    確認(rèn)List為空,你可以執(zhí)行下面的語句:

    println emptyMap.size()
    println emptyList.size()

    將輸出List和Map的長度為0.

    7.條件執(zhí)行

    在任何編程語言都非常重要的一個特征是在不同的條件下執(zhí)行不同的代碼的能力.最簡單的方式是使用"if"結(jié)構(gòu).例如:

    amPM = Calendar.getInstance().get(Calendar.AM_PM)
    if (amPM == Calendar.AM)
    {
        println("Good morning")
    } else {
        println("Good evening")
    }

    不要擔(dān)心第一條語句,它僅僅是一些確定當(dāng)前時間是中午之前還是之后的代碼.代碼執(zhí)行的順序如下:首先是求括號里面的值,之后依靠這個值是"true"還是"false"來確定是執(zhí)行第一還是第二塊代碼.查看下面的布爾表達(dá)式.

    "else"塊不是必需的,但是"if"塊則是必需的:

    amPM = Calendar.getInstance().get(Calendar.AM_PM)
    if (amPM == Calendar.AM)
    {
        println("Have another cup of coffee.")
    }

    8.布爾表達(dá)式

    在大多數(shù)的編程語言中都有一種特殊的數(shù)據(jù)類型,被用于表現(xiàn)真假值,"true"和"false".簡單的布爾表達(dá)式就是那些簡單的單詞.布爾值可以存儲在變量中,就像任何其他的數(shù)據(jù)類型一樣:

    myBooleanVariable = true

    一些復(fù)雜的布爾表達(dá)式可使用一些布爾操作符:

    * ==
    * !=
    * >
    * >=
    * <
    * <=

    它們大部分都非常直觀.相等操作符是"==",要與賦值操作符"="區(qū)分開.與相等相反的是"!=",為不等.

    下面是一些例子:

    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

    在"if"結(jié)構(gòu)中使用布爾表達(dá)式是非常有用的.例如:

    if (titanicBoxOffice + trueLiesBoxOffice > returnOfTheKingBoxOffice + theTwoTowersBoxOffice)
    {
        println(titanicDirector + " is a better director than " + returnOfTheKingDirector)
    }

    一個非常有用的測試是測試一個值或是表達(dá)式是否為空(沒有值).例如,我們想看看一個給定的Key是否存在Map中:

    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"]);
    }

    一般null被用于指出在一些位置上沒有值.

    9.調(diào)試和解決問題

    • 打印出你感興趣的變量的類可以使用myVar.getClass().之后查看那個類的文檔
    • 如果你有一個讓人頭痛的復(fù)雜的表達(dá)式,先將它分解成簡單的表達(dá)式,并求值.之后再將它們組合成復(fù)雜的表達(dá)式
    • 嘗試重新啟動groovyConsole(這將清除所有的變量,讓你重新開始)
    • 從Groovy的User Guide中查看你所感興趣的主題

    10.如果你是一個Java程序員

    Feedback

    # re: Groovy入門篇--Getting started  回復(fù)  更多評論   

    2009-01-09 22:23 by 張三
    引用:請不要發(fā)表任何與政治相關(guān)的內(nèi)容
    國外的論壇網(wǎng)站不可能有這樣的規(guī)定!
    真是可笑!
    這就是中國特色的社會主義!
    和諧!

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


    網(wǎng)站導(dǎo)航:
     

    posts - 47, comments - 124, trackbacks - 0, articles - 0

    Copyright © puras

    主站蜘蛛池模板: 97热久久免费频精品99| 亚洲免费视频播放| 国产成人在线观看免费网站| 无码成A毛片免费| jizz免费观看| 国产亚洲精品国产福利在线观看 | 亚洲欧洲无码AV不卡在线| 亚洲人成网www| 亚洲人成亚洲人成在线观看| 国产gav成人免费播放视频| 久九九精品免费视频| 99精品一区二区免费视频| 日本在线免费观看| 99久久99这里只有免费的精品| 免费无码一区二区| 国产99久久亚洲综合精品| 亚洲AV永久无码精品网站在线观看 | 久久91亚洲精品中文字幕| 国产AV无码专区亚洲AV漫画 | 亚洲Av永久无码精品黑人| 亚洲一区二区三区久久| 亚洲精品视频久久| 久久久久亚洲AV片无码下载蜜桃| 亚洲成av人片天堂网| 国产AV无码专区亚洲精品| 久久精品九九亚洲精品天堂| 国产自偷亚洲精品页65页| 中文字幕第13亚洲另类| 久久亚洲国产成人影院网站| 中文字幕亚洲专区| 亚洲精品自在在线观看| 久久噜噜噜久久亚洲va久| 亚洲AV成人无码久久精品老人| 久久亚洲精品成人| 亚洲精品欧洲精品| 2020国产精品亚洲综合网| 亚洲欧美日韩国产成人| 看全免费的一级毛片| 一级毛片免费不卡| 你懂的免费在线观看| 玖玖在线免费视频|