1.Scala基礎
阿新 • • 發佈:2018-11-06
package scala object BaseTest { def main(args: Array[String]): Unit = { /** * 在 Scala中,使用關鍵詞 "var"宣告變數,使用關鍵詞 "val"宣告常量。 */ //基本型別 println("Hello World!") val x = 0x29 println(x) val y = 50 println(y); val floatNumber = 3.1415F println(floatNumber) val charLetter = 'A' println(charLetter) //基本型別操作 var sumVal = 1 + 2 println(sumVal) var sumVlaue = (1).+(2) println(sumVlaue) //運算子 < > == != && || ! & | ^ ~ << //流程控制 //if可用作表示式,whie不可以 val a = if ("hello" == "h") 1 else 0 var i = 1 while (i < 10) { println(i); i += 1 } var j = 1 do { print(j); j += 1 } while (j < 5) var files = (new java.io.File(".")).listFiles(); for (file <- files) println(file) for (i <- 0 to 10) println(i) for (i <- 0 until 10) println(i) //不包含10 for (file <- files if file.getName.endsWith(".scala")) println(file) //多重迴圈的實現 def fileLines(file: java.io.File) = scala.io.Source.fromFile(file).getLines.toList def grep(pattern: String) = for ( file <- files if file.getName.endsWith(".scala"); line <- fileLines(file) if line.trim.matches(pattern) ) println(file + ": " + line.trim()) //與grep等價 def grep2(pattern: String) = for ( file <- files if file.getName.endsWith(".scala") ) for ( line <- fileLines(file) if line.trim.matches(pattern) ) println(file + ": " + line.trim()) //Scala中for迴圈是有返回值的 //for迴圈中的 yield 會把當前的元素記下來儲存在集合中,迴圈結束後將返回該集合。 //生成返回結果 def scalaFiles = for (file <- files if file.getName.endsWith(".scala")) yield file } }