1. 程式人生 > >Scala學習筆記--第6章 tuple及zip操作

Scala學習筆記--第6章 tuple及zip操作

6.1 tuple-元組

元組就是不同型別的值的聚集,英文名稱為tuple。對映是鍵值對的集合,它只是元組的最簡單形態。元組的值是通過將單個的值包含在圓括號中構成的,其中值可以是任意型別。

元組取值的方法,用_下滑線+下標進行取值,有一點需要注意,元組取值是從1開始,而不是像陣列,從0開始。通常,使用模式匹配來獲取元組裡面的元素。

一般元組主要用於函式中需要返回的值較多,且型別不一的情況,例如StringOps的partition方法,返回的是一對字串,分別包含了滿足某個條件和不滿足條件的字元:

“New York”.partition(_.isUpper) // 輸出 (”NY”, “ew ork”),即獲取字串中的大寫字母以及非大寫字母分別輸出

object TupleTest {
  def main(args : Array[String]) : Unit = {
    val tuple = (1, 2, 3.14, "hello", "world")
    val third = tuple._3
    println(third)
    
    val (first, second, thirda, fourth, fifth) = tuple
    println(first)
    
    val (f, s, _, _, _) = tuple
    println(tuple._2)
  }
}

6.2 Zip操作

使用元組是為了把多個值綁在一起,以便能夠一起處理,通常也可以用zip方法來完成,例如:

val symbols = Array(“<“, “-“, “>”)

val counts = Array(2, 10, 2)

val pairs = symbols.zip(counts)

輸出對偶的陣列:

Array((“<“, 2), (“-“, 10), (“>”, 2)),詳見示例:

object ZipTest {
  def main(args : Array[String]) : Unit = {
    val symbole = Array("[", "*", "]")
    val counts = Array(2, 5, 3)
    val pairs = symbole.zip(counts)
    for((x, y) <- pairs) println(x*y)
  }
}

輸出結果:[[*****]]]