在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Scala/ scala 函數(shù) 語法理解

scala 函數(shù) 語法理解


override def generateJob(time: Time): Option[Job] = {
    parent.getOrCompute(time) match {
      case Some(rdd) =>
        val jobFunc = () => createRDDWithLocalProperties(time, displayInnerRDDOps) {
          foreachFunc(rdd, time)
        }
        Some(new Job(time, jobFunc))
      case None => None
    }
  }

val jobFunc = () => createRDDWithLocalProperties(time, displayInnerRDDOps) {
          foreachFunc(rdd, time)
        }
        
        這個代碼是啥意思?createRDDWithLocalProperties 函數(shù)執(zhí)行,為什么后面還會有一個花括號?。??
        
回答
編輯回答
離殤

我不知道你的上下文其他代碼是怎么樣的,但如果你僅僅只是想明白花括號是干嘛用的下面有一個例子:

val a = 1
val b = 2

val func = abstractAdd(a,b){
  addImpl
}

def abstractAdd(a: Int, b: Int)(tryDo: (Int, Int) => Int): Int = {
  tryDo(a, b)
}

def addImpl(a: Int, b: Int): Int = a + b

我們有個不知道這么做加法的運算 abstractAdd,除了要傳入要進行加法的 ab,還需要傳入一個真正實現(xiàn)加法的函數(shù)。func 就實現(xiàn)完整實現(xiàn)了加法運算了。

涉及知識點:柯里化、高階函數(shù)

2018年7月1日 21:44
編輯回答
陌璃
這是一個函數(shù)啊.  createRDDWithLocalProperties是函數(shù)名
createRDDWithLocalProperties(time, displayInnerRDDOps) {
          foreachFunc(rdd, time)
        }
        
2017年6月10日 12:52