Coursera Scala 5-2:Pairs和Tuple
pair: (x,y)
scala> val (label,value) = (1,"s")
label: Int = 1
value: String = s
scala> (1,"s")
res0: (Int, String) = (1,s)
超过两个元素的就是tuple了
(T1,....,Tn)是Scala.Tuplen[T1,...,Tn]的缩写
(e1,....,en)是Scala.Tuplen(e1,...,en)的缩写
tuple模式中也和上面的(e1,...,en)一样
Example
归并算法实现。
object mergesort{ def msort(xs: List[Int]):List[Int] = { val n = xs.length/2 if(n==0) xs else{ def merge(xs:List[Int],ys: List[Int]):List[Int] = (xs,ys)match { case (Nil,ys) => ys case (xs,Nil) => xs case (x::xs1,y::ys1) => if(x<y) x::merge(xs1,ys1) else y::merge(xs,ys1) } val (fst,snd) = xs splitAt n merge(msort(fst),msort(snd)) } } val nums = List(2,-4,5,7,1) msort(nums) }