scala 持续更新中

196 阅读1分钟

世界 你好

package demo.scala
{
    /**
      * 基础的scala类
      */
    object Hello {
      def main(args: Array[String]): Unit = {
        val s: String = "hello world"
        println(s)
      }
    }
    
    /**
      * 基础的scala1类
      */
    object Hello1 {
      def main(args: Array[String]): Unit = {
        val s = "hello world1"
        println(s)
      }
    }
}

常量和变量

/**
  * 测试常量和变量定义类
  */
object Variable {
  def main(args: Array[String]): Unit = {
    var myVar = 10
    myVar = 11
    val myVal = "Hello, Scala!"
    val myVal1, myVal2 = 12
    val myArray = ("数据组1", "数据组2", "数据组3")
    println(myVar + "\t" + myVal + "\t" + myVal1 + "\t" + myVal2 + "\t" + myArray)
  }

访问修饰符

  /**
    * 访问修饰符 只有三种public(缺省),protected(子类中使用),private(本类中使用)
    */
  object Modifier {

    class Out {

      class In {
        private[Out] def f(): Unit = {
          println("私有方法")
        }

        protected def f1(): Unit = {
          f()
        }

      }

      class In1 extends In {
        def f2(): Unit = {
          f1()
        }
      }

      (new In).f()
      (new In1).f2()
    }

  }

运算

  /**
    * 基础运算
    */
  object Operation {

  }

逻辑语句

  /**
    * 逻辑语句
    */
  object LogicalStatement {
    def main(args: Array[String]): Unit = {
      val i = 20
      if (i == 20) {
        print("i的值为:" + i)
      }
    }
  }

循环语句

  object LoopStatement {
    def main(args: Array[String]): Unit = {
      for (a <- 0 to 2) {
        print(a + "\t")
      }
      println()
      for (b <- 0 until 10) {
        print(b + "\t")
      }
      println()
      for (a <- 0 to 2; b <- 0 to 10) {
        print(a + "\t")
        print(b + "\t")
        println()
      }
      println()
      val lists = List(1, 2, 3, 5, 6)
      for (a <- lists) {
        print(a + "\t")
      }
      println()
      for (a <- lists if a > 1; if a < 6) {
        print(a + "\t")
      }
      println()
      val x = for {a <- lists if a > 1; if a < 5} yield a
      println(x)
      for (a <- x) {
        print(a + "\t")
      }
      println()

    }
  }

字符串

  /**
    * 字符串
    */
  object characterString {
    val str: String = "ok"

    def main(args: Array[String]): Unit = {
      println(str)
    }
  }

字符串

  /**
    * 集合
    */
  object Arrays {

    def main(args: Array[String]): Unit = {
      val array = Array("1", "2", "4")
      // 输出所有数组元素
      for (x <- array) {
        print(x + "\t")
      }
      println()
      val list = List("1", "2", "3")
      for (x <- list) {
        print(x + "\t")
      }
      println()
      val set = Set("2", "2", "4")
      for (x <- set) {
        print(x + "\t")
      }
      println()
      val map = Map("key1" -> "value1", "key2" -> "value2", "key3" -> "value3")
      map.keys.foreach {
        i =>
          print("key:\t" + i)
          print("\t")
          print("value:\t" + map(i))
          println()
      }
      println()
    }
  }

提取器

  /**
    * 提取器是从传递给它的对象中提取出构造该对象的参数。
    * 类似于构造方法 我们可以 def apply(): Extractor = new Extractor()
    */
  object Extractor {
    def main(args: Array[String]): Unit = {
      print(Extractor(6))
    }

    def apply(x: Int): Int = x * 2

    def unapply(x: Int): Int = x / 2
  }