文章出處
文章列表
package yjmyzz import java.io.PrintWriter import java.util.Date import scala.io.Source object ScalaApp02 { def main(args: Array[String]) { tupleDemo println mapDemo println arrayDemo println fileWriteAndRead println(getUrlContent("http://www.cnblogs.com/yjmyzz/")) } /** * 元組示例 */ def tupleDemo = { //val表示常量(相當于JAVA中的final),var表示變量 val tuple = ("jimmy", 100, new Date()) //這寫法比c#里的Tuple<T>還簡潔 //打印第1,2,3個元素,注意元組下標是從1開始的 println(tuple._1) println(tuple._2) println(tuple._3) } /** * 數組示例 */ def arrayDemo = { var myArr = Array(5, 4, 3, 2, 1) //注意:這里不需要new關鍵字 for (i <- myArr) println(i) println //找出myArr中的偶數 var even = myArr.filter(i => i % 2 == 0) //這語法的簡潔性,快趕上C#的LINQ了 for (i <- even) println(i) println scala.util.Sorting.quickSort(even) //排序 for (i <- even) println(i) } //Map示例 def mapDemo = { var myMap = Map(("jimmy", 1), ("Mike", 2), ("John", 3)); //遍歷 for ((k, v) <- myMap) { println("key:" + k + "\t,value=" + v); } println println("all keys => ") //遍歷key for (k <- myMap.keys) { println(k) } println //遍歷value println("all values => ") for (v <- myMap.values) { println(v) } println //遍歷key和value,還有一種寫法(利用占位符號"_") println("all keys => ") for ((k, _) <- myMap) println(k) println println("all values => ") for ((_, v) <- myMap) println(v) } /** * 文件讀寫示例 */ def fileWriteAndRead = { val fileName = "scalaTest.txt" //寫文件 var writer = new PrintWriter(fileName) writer.write("hello scala\n") writer.write("hello spark") writer.close() //讀文件 var fileContent = Source.fromFile(fileName); println(fileContent.mkString) } /** * 獲取網頁內容 * @param url * @return */ def getUrlContent(url: String): String = { Source.fromURL(url).mkString } }
從上面的示例代碼可以看出,scala有極強的類型推導能力,大多數情況下,不用指定變量類型,編譯器能根據變量的值正確推導出變量類型,這一點豪不遜色于c#
文章列表
全站熱搜