1.Scala基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15014327/article/details/83575426
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
  
  }
}

参考自:https://blog.csdn.net/column/details/scalalearning.html

猜你喜欢

转载自blog.csdn.net/qq_15014327/article/details/83575426