我試圖改變一個方法到一個函數,但我有跟返回類型的煩惱:斯卡拉函數返回類型
sealed trait CronJobStatus
case object CronJobSuccess extends CronJobStatus
case class CronJobFailure(error: Option[String] = None) extends CronJobStatus
我的方法(工作)是:
def jobNotFoundFailure(name: String): CronJobStatus = CronJobFailure(Some(s"Job with name $name not found"))
當試圖具有jobNotFoundFailure作爲一個功能,我無法找到正確的語法來指定,它返回一個CronJobStatus,我有這個功能(但它返回CronJobFailure)
val jobNotFoundFailure = (name: String) => CronJobFailure(Some(s"Job with name $name not found"))
這意味着我不能在需要CronJobStatus的情況下使用此函數。例如從地圖和摺疊得到一個選項時:
cronJobsMap.get(name).fold(jobNotFoundFailure(name))(doDelete)
嘗試了超過半個小時尋找語法,但找不到它。謝謝! :) – klogd