2015-11-11 20 views
0

如何爲兩種用例創建一個隱式類?基於數字的泛型SortByValue

implicit class SortableByIntValue(rdd:RDD[(String,Int)]){ 
    def sortByValue = rdd.sortBy(_._2) 
    } 
    implicit class SortableByDoubleValue(rdd:RDD[(String,Double)]){ 
    def sortByValue = rdd.sortBy(_._2) 
    } 

回答

1

嘗試這種情況:

import scala.reflect.ClassTag 

implicit class SortableByValue[N : Numeric : ClassTag](rdd:RDD[(String,N)]){ 
    def sortByValue = rdd.sortBy(_._2) 
} 

這應該是可擴展到任何類型的針對其Ordering可用(的[O : Ordering]代替[N : Numeric]),如果需要的話。