Groovy基本語法(2)
4、靜態import
我是最早在.net framework 3.5上使用類似import static這種語法的,用起來相當方便的說,但JDK一直沒有引入這玩意兒,按道理說加上這麼個小功能是很容易實現的。不過Groovy倒是帶來來功能更強大的import static語法,用起來也很方便:
這玩意兒的主要作用就是避免重複書寫哪些又臭又長的類名,隨著JDK類庫的不斷增加,類名字是越來越長,像造句一樣,import static恰好解決了這一問題,還是很貼心的。package plswg.edu.groovy.basic // 將Integer類的MAX_VALUE靜態成員變數引入 import static Integer.MAX_VALUE // 將Double類的parseDoubl靜態成員方法引入 import static Double.parseDouble // 給靜態引入賦予別名 import static Boolean.TRUE as T // 將Boolean.TRUE取名為T import static Boolean.FALSE as F // 將Boolean.FALSE取名為F // 給靜態引入的方法賦予別名 import static Calendar.getInstance as now // 程式碼中凡是用到MAX_VALUE, 指的都是Integer.MAX_VALUE println MAX_VALUE // 程式碼中凡是用到parseDouble, 指的都是Double.parseDouble s = "123.123" println parseDouble(s); // 程式碼中凡是使用T的地方表示true,使用F的地方表示false println T println !T println F // 程式碼中凡是使用now的地方表示Calendar.getInstance println now().get(Calendar.HOUR)
5、分支結構語句
Groovy的結構化語句仍舊是三種:順序結構、分支結構和迴圈結構,其中分支結構和迴圈結構增加了很多意想不到的功能,先看分支結構:
首先,Groovy對boolean型別放寬了限制:package plswg.edu.groovy.basic // groovy中if條件分支的新規定 // groovy中,非0的數值可以表示true int num = 0 if (num) { println "True" } else { println "False" } println (++num ? "True" : "False") if (!!num) { // !!運算子可以將num轉化為boolean型別 println "num=${num}為${!!num}" } println "" // 引用為null時,表示false Object o = null if (o) { println "True" } else { println "False" } o = new Date() if (o) { println "True" } else { println "False" } println "" // 字串為""時,表示false String s = "" if (s) { println "True" } else { println "False" } s += "hello" if (s) { println "True" } else { println "False" } println "" // 集合為空時,表示False ArrayList array = new ArrayList() if (array) { println "True" } else { println "False" } array.add(100) if (array) { println "True" } else { println "False" } println "" // groovy中switch選擇分支的新規定 // switch對字串型別的支援 print "Please input your words: " s = new BufferedReader(new InputStreamReader(System.in)).readLine() switch (s) { case "how are you": println "fine, thank you" break; case "how do you do": println "how do you do too" break; default: println "nice to meet you" } // switch對集合和範圍的支援 n = new Random().nextInt(101) print "you got ${n} point, " switch (n) { case [98, 99, 100]: // n為98, 99, 100這三個數字時 println "very good!!" break; case 90 .. 97: // n為90-97之間時 println "nice job!!" break; case 70 .. 89: // n為70-89之間時 println "good" break; case 60 .. 79: // n為60-79之間時 println "can be better" break; case {it > 0 && it < 60}: // n比0大且比60小時 println "too bad" break; case 0: // n為0時 println "nothing to say" break; }
- 常量true和false分別表示“真”和“假”;
- null表示false,非null表示true;
- 空字串""表示false,非空字串表示true;
- 0表示false,非0表示true;
- 空集合表示false,非空集合表示true;
Groovy中對於switch語句的修改也是非常誇張的,這讓我甚至有些懷疑Groovy中的switch是否還能達到O1的執行效率,因為Groovy的swtich表現的太像巢狀的if...else if了,在例子中,switch的case後面可以跟隨如下幾種玩意兒:
- 常量,在Groovy中,case後的常量包括數值型常量或字串型別常量,方便很多了,JDK7中新增加了使用字串常量的case語句,而在.net framework 1.1中早就有了,諸如Basic,PHP,Python,Javascript等指令碼,更是一開始就支援字串常量的case語句;
- Range:即範圍,語法 n1 .. n2 表示n1和n2之間的所有數值n(n1 <= n <= n2);
- Collection:集合,語法 [a1, a2, a3, ... , an],表示由中括號中的n個元素構成的集合,其中各個元素型別不必統一;
- 閉包:由 { 語句 } 構成的匿名函式體,這個後面會重點講述,這裡只要知道,一旦case之後的閉包返回true,則冒號之後的程式碼將會執行;
相關推薦
Groovy基本語法(2)
4、靜態import 我是最早在.net framework 3.5上使用類似import static這種語法的,用起來相當方便的說,但JDK一直沒有引入這玩意兒,按道理說加上這麼個小功能是很容易實現的。不過Groovy倒是帶來來功能更強大的import static語法
python基本語法2.8--找出100以內的素數
string color utf-8 blog ring div prim style odi 問題描述:找出某一範圍內的素數 思路:給每個數字作標註 首先,要循環遍歷到該範圍內的所有數,一個大循環 然後,遍歷2到n-1。看是否能被整除 代碼: # -*-
js --基本語法2
複習 :1. JS 引入方式 1. 元素事件繫結 onclick = "JS 語句" 2. <script> JS 程式碼 </script> 3. 外部JS檔案 <script src=""></script>2. JS 資料型別 Number String
groovy基本語法--XML及HTML
1、groovy對XML及HTML的支援 Groovy 引入了一些全新的、更加合理的方法來建立和處理 XML及HTML。程式碼更加簡潔,更具表達性。 XML標記構建器Groovy支援基於
基本語法2-流程控制_練習
寫出結果。 class Demo { public static void main(String[] args) { int m=0,n=3; if(m>0) if(n>
Groovy基本語法(1)
2、Starting Groovy 相比於一個傳統的Java類,一個包含main方法的Groovy類可以如下書寫: 程式碼1:具有main函式的Groovy類 package plswg.edu.groovy.basic // 利用class關鍵字建立一個
scala學習計算開始基本語法2
上接scala學習開始基本語法1 第五步:陣列的使用 在scala中,可以使用new來例項化物件,當你建立一個數組物件的時候,你可以使用數值或者是型別引數。但是在scala中,是使用[]來指明物件,java是使用<>。如下程式碼 package
J2SE習題—基本語法2
1.用1元5角錢人民幣兌換5分、2分和1分的硬幣(每一種都要有)共100枚,問共有幾種兌換方案?每種方案各換多少枚? 2.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數
Groovy基本使用(2):基本語法
Groovy 基本語法Groovy 是一種動態型別的 JVM 敏捷開發語言,基本的語法和 Java 十分相似,很多關鍵字直接使用 Java 的關鍵字,如:import 匯入類,//、/**/ 標記註釋,使用和 Java 類似運算子 等等;一個基本的示例Helloworld.g
2.基本語法
下劃線 變量的數據類型 註意 算術 語法 區別 區分 while 分類 1.關鍵字 & 標識符 關鍵字:被Java語言賦予了特殊含義,用做專門用途的字符串(單詞) 保留字:未來可能會被使用 標識符:凡是自己可以起名字的地方都叫標識符 命名的規則:(一定要遵守,不遵守
Go學習(2):基本語法
基本語法 一、二進位制、八進位制、十進位制、十六進位制【擴充套件內容】 1.1 進位制 二進位制:逢二進一,數值只有0和1。 八進位制:逢八進一,數值有0,1,2,3,4,5,6,7 十進位制:逢十進一,數值有0,1,2,3,4,5,6,7,8,9 十六進位制:逢十六
2 資料庫基本語法sqlite3
資料庫基本語法(增刪改查) SQL structured query language 結構化查詢語言。專門對資料庫進行查詢、增加、修改、刪除、統計的操作語言。 CURD增刪查改 create update retrieve delete 書寫風格,關鍵字大小寫都行,建議大寫。表名大
第2章: Python語言基本語法元素
目錄 考綱考點 知識導圖 1、程式的格式框架 縮排 註釋 2、語法元素的名稱 變數 命名 保留字 3、資料型別 資料型別概述 數字型別 字串 4、程式的語句元素 表示式 賦值語句 其他語句 分支語句 迴圈語句 5、基
scala學習(2)-基本語法--for迴圈和if語句
上一篇部落格我對scala做了最基本的講述吧,主要是我就知道那麼多,哈哈,好啦,今天我們看看在任何語言中我們用的最多的兩種語句吧。一猜就中,for和if語句。 當然開始之前我們還是說一下在scala中的變數的定義怎麼來。 變數 在scala中如果要定義
[2] CSS&javascript(基本語法及使用)
一、 CSS概述 1、CSS是什麼? * CSS (CascadingStyle Sheets)指層疊樣式表 2、CSS有什麼作用? *CSS就是用來修飾HTML 3、CSS程式碼規範 *CSS程式碼一般寫在&l
Z 2. CSS選擇器基本語法
CSS選擇器的語法比XPath更簡單一些,但功能不如XPath強大。實際上,當我們呼叫Selector物件的CSS方法時,在其內部會使用Python庫cssselect將CSS選擇器表示式翻譯成XPath表示式,然後呼叫Selector物件的XPATH方法。
7-2 jmu-Java-02基本語法-08-ArrayList入門
7-2 jmu-Java-02基本語法-08-ArrayList入門 (10 分) 本習題主要用於練習如何使用ArrayList來替換陣列。 新建1個ArrayList strList用來存放字串,然後進行如下操作。 提示:查詢Jdk文件中的ArrayList。 注意:請使用System
【1】Groovy語言學習:groovy語言簡介及基本語法
Groovy是一種基於JVM的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性。 一、groovy是什麼 簡單地說,Groovy 是下一代的java語言,跟java一樣,它也執行在 JVM 中。作為跑在JVM中的另一種語言
XML學習2:XML基本語法(一)
匯入 一個XML檔案可分為如下幾部分內容:文件宣告 、元素、屬性、註釋 、CDATA區 ,特殊字元 、處理指令 (processing instruction)等。
Swift基礎1.2——基本語法—Optional 可選項
本打算用一篇完整把Swift的基礎語法寫完,但看了一下以前整理的內容,看來是不可能了。 Optional 是 Swift 的一大特色定義變數時,如果指定是可選的,表示該變數可以有一個指定型別的值,也