[Scala] Scala programming - basic level
环境配置
IDE: https://www.jetbrains.com/idea/
/* 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 */