閱讀771 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Coursera Scala 5-2:Pairs和Tuple


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)
}

最後更新:2017-04-03 05:39:11

  上一篇:go 利用YaHoo YUI實現Javascript CSS 壓縮
  下一篇:go c遍曆所有文件夾中的文件