Scala控制结构&数组&映射&元组

2018-10-05  本文已影响0人  hipeer

控制结构

// if
if (true) 1 else 0 // if表达式有返回值

// for
for (i <- 1 to 9) println(i)
for (i <- 1 to 9; j <- 1 to 9) println(j * i)
for (i <- 1 to 9 if i > 5; j <- 1 to 9 if j < 5) println(j * j)
for(i <- 1 until 9) println(i)

// match 
def sign(n: Int) = {
  n % 3 match {     // match表达式有返回值, 可以直接赋值
    case 0 => "ok"
    case _ => "no"
  }
}
def sign(n: Int) = n % 3 match { case 0 => "ok"; case _ => "no" }

数组

val arr = new Array[int](10) // 声明一个长度为10的Int类型的数组
val arr1 = Array(1, 2, 3, 4)  // 声明数组时给出值

// 数组遍历
for (i <- arr1) println(i) // 1 2 3 4
for (i <- 0 to arr.length - 1)  println(arr(i)) // 1 2 3 4
for (i <- 0 to (arr.length - 1, 2)) println(arr(i)) // 1 3
for (i <- (0 to arr.length).reverse) println(arr(i)) // 4 3 2 1

映射

// 不可变映射
val map = Map(x1 -> y1, x2 -> y2, x3 -> y3)
val map = Map((x1, y1), (x2, y2), (x3, y3))
// 可变映射
val map = scala.collection.mutable.Map(x1 -> y2, x2 -> y2)
val map = new scala.collection.mutable.Map[T1, T2]

// 获取映射键对应值
val a = map(x1)
val b = map.get(x1)
val c = map.getOrElse(x1, 0)

// 增加/删除键值对
map += (x4 -> y4, x5 -> y5)
map -= x5
// 不可变映射通过构造新映射实现
val newMap = map + (x4 -> y4, x5 -> y5)
val newMap = mpa - (x5 -> y5)

// 映射的遍历
for((key, value) <- map) println(key + ": " + value)
// 互换映射的键值
for((key, value) <- map) yield (value, key)

// 获取映射键或值的集合
val keys = map.keySet
val values = map.values

元组

val tuple = ("steven", 18, "male", 1234567890, 68.4)
val tuple = Tuple5("steven", 18, "male", 1234567890, 68.4)

// 访问元组
val name = tuple _1 或 val name = tuple._1
上一篇 下一篇

猜你喜欢

热点阅读