我试图使用高阶函数删除一些重复的代码。以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