簡體   English   中英

作為Scala上的元組參數

[英]Function as tuple parameter on Scala

我試圖表明問題而且我做得最差。 讓我們給出復雜的代碼。

我正在調用一個函數:

mySchedule(config, actorSystem.scheduler.schedule) {
    ...
}

該函數定義如下:

def mySchedule(config: MyConfig, cb: (FiniteDuration, FiniteDuration) => (=> Unit) => Cancellable)(f : => Unit) = {
    val initialDelay = ...
    val interval = ...
    cb(initialDelay, interval)(f)
}

為了做測試,我願意做類似的事情

def noop: Unit = {}
val promiseSchedule = Promise[(FiniteDuration, FiniteDuration, => Unit)]()
mySchedule(
   config,
   {... promiseSchedule.success((initialDelay, interval, f))}
)(noop)

promiseSchedule.future.value must be_==(...)

我該如何工作?

試試看:

def noop(): Unit = {}
val promiseSchedule = Promise[(Int, () => Unit)]()
// ...
promiseSchedule.success((1, noop))

原因是因為在元組中(就像在案例類中一樣)構造函數的所有成員都是val。
並且不可能在val中存儲按名稱調用,而只能存儲其值或函數。

干杯

雖然這個問題已得到解答,但這篇博文可能會激發一些關於創建Scala“Noop”的想法: https//jazzy.id.au/2015/04/01/noop-monad.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM