scala中的case中的变量为啥没有定义
生活随笔
收集整理的這篇文章主要介紹了
scala中的case中的变量为啥没有定义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例子如下:
def topTermsInTopConcepts(svd: SingularValueDecomposition[RowMatrix, Matrix], numConcepts: Int,numTerms: Int, termIds: Array[String]): //這三行是輸入的參數類型Seq[Seq[(String, Double)]] = //這一行是返回的變量類型{val v = svd.V//這里是kxn矩陣val topTerms = new ArrayBuffer[Seq[(String, Double)]]()val arr = v.toArrayfor (i <- 0 until numConcepts){val offs = i * v.numRowsval termWeights = arr.slice(offs, offs + v.numRows).zipWithIndex//這里的意思是(i·v.numRows,(i+1)·v.numRows)val sorted = termWeights.sortBy(-_._1)//減去某個元素的第一個成員topTerms += sorted.take(numTerms).map{case (score, id) => (termIds(id), score) }}topTerms//最終返回(id,score)的組合 }我們會發現,這份代碼的score和id都沒有進行定義就直接拿來用了。
?
?這里的score和id稱為“模式變量”,是對前面的結果進行模式匹配的,所以不需要進行定義,也有資料稱為“占位符”
總結
以上是生活随笔為你收集整理的scala中的case中的变量为啥没有定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark API 详解(转)
- 下一篇: 患者如何区分股癣和银屑病+药膏根治