我試圖使用高階函數刪除一些重複的代碼。以fn爲參數的高階函數與調用單一對象方法
這與調用Singleton對象方法有何不同?
示例代碼:
filterDFForPaymentType(filterDF, df, "Manual")
filterDFForPaymentType(filterDF, df, "Electronic")
def filterDFForPaymentType(fn: (DataFrame, String) => DataFrame, df: DataFrame, paymentType: String) {
fn(df, paymentType)
}
def filterDF(df: DataFrame, paymentType: String): DataFrame = {
val filteredDF = df.where(col("paymenttypecol") === paymentType)
filteredDF
}
這是如何從調用使用Singleton對象方法相同的功能有所不同。
filterDFForPaymentType(UtilClass.filterDF(df, "Manual"))
filterDFForPaymentType(UtilClass.filterDF(df, "Electronic"))
我確定我們可以使用高階函數做更多的事情,但我沒有真正理解這一點。
這是正確的方法來使用高階函數嗎?
有人可以給我鏈接正確使用高階函數的例子嗎?
在這種情況下,直接使用功能沒有好處 – cchantep