Scala學習筆記--第6章 tuple及zip操作
阿新 • • 發佈:2018-12-25
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) } }
輸出結果:[[*****]]]