[Scala] Scala programming - basic level

环境配置

IDE: https://www.jetbrains.com/idea/

子雨大数据之Spark入门教程(Scala版)

/* implement */

 

 

语言特性

Online compiler: https://scastie.scala-lang.org/

只记录 “不太一样” 的特性。

 

一、常量变量

常量 val, 变量 var。

 

 

二、循环

var name = "hello"
for (n <- name)
{
  println(n)
}

嵌套循环,遍历数字和数组元素。

  def main(args: Array[String]): Unit = {
    
    for (a <- 1 to 10) {
      for (b <- 1 to 10) {
        if (a == b) {
          println("a = " + a + ", b = " + b)
        }
      }
    }
    
//嵌套循环的等价新写法
for (a <- 1 to 10; b <- 1 to 10 if a == b) {
...
}
val arr
= Array[Int](1,2,3,4,5) for(elem <- arr) { println(elem1) } }

until 则不包括最后一个元素。

    val arr = Array[Int](1,2,3,4,5)
val arr1
= new Array[Int](arr.length) for (index <- 0 until arr.length) { arr1(index) = arr(index) + 10 } println(arr1.toBuffer)

类似与lambda的写法。

    val arr = Array[Int](1,2,3,4,5)
val ret
= for (a <- arr) yield a + 10
println(ret.toBuffer)

 

 

三、条件赋值

支持混合表达。

  def main(args: Array[String]): Unit = {
    
    val x = 1
    val y = if (x > 0) 1 else -1
    println(y)
    
    val m = if (x > 2) 1
    println(m)
    
    val n = if (x > 2) 1 else ()
    println(n)
    
    val k = if (x < 0) 0 else if (x >= 1) 1 else -1
    print(k)
   }

 

 

四、函数

  def ml(a: Int, b: Int): Unit = {
    println("hello, " + (a+b))
  }
  
  def main(args: Array[String]): Unit = {
// 1.匿名函数 val f1
= (a:Int, b: Int) => a + b println(f1(10, 20)) // 2.普通函数 ml(10,20) }

 

 

 

 

 

  

/* implement */

posted @ 2017-10-02 06:18  郝壹贰叁  阅读(197)  评论(0)    收藏  举报