所以,我是功能編程的新手,我仍然試圖消化基本原理。到目前爲止,我可以理解,理想情況下,代碼應該沒有可變變量,賦值,循環和其他命令性控制結構。所以我有一個問題。功能編程原理
def enrich(xRDD: RDD[xObject], yRDD: RDD[yObject], zRDD: RDD[zObject]): RDD[Result] = {
val temp = functionA(xRDD, yRDD)
functionB(temp, zRDD)
}
和
def enrich(xRDD: RDD[xObject], yRDD: RDD[yObject], zRDD: RDD[zObject]): RDD[Result] = {
functionB(functionA(xRDD, yRDD), zRDD)
}
哪一個我應該選擇和原因:下面的兩個代碼snipets之間?我的猜測是第二個,因爲它避免了將數據本地分配給臨時val。這一切都有它嗎?我是否正確?我錯過了什麼嗎?
無論如何,結果將在內存中,這只是一個可讀性問題。如果你認爲'val temp'的好名字,那麼第一個選項就更好了。 – ipoteka